Não foi possível localizar o tools.jar

182

Estou construindo um projeto em Java.

Eu tenho este erro:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

Eu instalei um JDK e a pasta: C:\Program Files\Java\jre6\libestá no meu sistema, mas o arquivo tools.jarnão está lá.

olidev
fonte
Eu acho que as ferramentas pertencem ao JDK e não ao JRE. Não é? C: \ Arquivos de programas \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo
4
Como um aparte, o que eu acho surpreendente é que o programa realmente disse onde estava. Poucos programas fornecem essa pista útil.
Peter Flynn
Consulte também a pergunta duplicada: stackoverflow.com/q/9119479/3328979 Respostas de alguma forma são melhores do que aqui.
Arashsoft

Respostas:

188

Sim, você baixou e instalou o Java Runtime Environment (JRE) em vez do Java Development Kit (JDK). O último possui o tools.jar, java.exe, javac.exe, etc.

duffymo
fonte
7
@olidev verificando isso agora, mas ainda não consigo parar de apontar o problema! Como essa pode ser sua resposta? Você já mencionou que instalou o jdk e o jre. Na verdade, estou enfrentando um problema semelhante e ele ainda continua :-(. Precisa saber como conseguiu fazer isso? #
Mercenary
7
Inclua JAVA_HOME e o diretório / bin em seu caminho. Você percebe que essa resposta tem dois anos, certo?
Duffymo
17
No ubuntu: # apt-get install default-jdke o erro desaparece.
Xavi Montero
2
A chave? JDK. É isso que tem as ferramentas. JRE não.
Duffymo
2
Não necessariamente. Parece-me que eles podem ter JAVA_HOMEdefinido para o jreinterior do em jdkvez de para o jdkpróprio.
ArtOfWarfare
88

Caso isso ainda seja um problema para qualquer pessoa, tenho alguns esclarecimentos sobre as respostas anteriores. Eu estava enfrentando esse mesmo problema usando o ant com apenas um JDK instalado. Embora o instalador do JDK tenha me fornecido uma estrutura de diretórios como esta:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

e quando executei o ant, ele se queixou de não encontrar o tools.jar no subdiretório jre7. Não foi até eu set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"que o erro desapareceu.

Blake Mitchell
fonte
7
isto. obrigado! (para aqueles de nós que têm vários jre / versões do JDK instalado)
Daren Thomas
ele trabalhou para me..earlier i deu o caminho com \ also..that bin foi a questão
John
Obrigado, eu gostaria de poder dar-lhe 2 ups!
Lucas
38
  1. Instale o Java SDK .

  2. Inclua uma variável de ambiente do sistema chamada JAVA_HOME com o valor da localização do JDK.
    Vá para Painel de Controle \ Sistema e Segurança \ Sistema. Configurações avançadas do sistema, variáveis ​​de ambiente, variáveis ​​de sistema, novas ... Exemplo:
    Nome da variável: JAVA_HOME
    Valor da variável: C: \ Arquivos de programas \ Java \ jdk1.7.0_21

  3. Feche / reabra a janela do CMD para que a nova variável entre em vigor antes de tentar executar novamente o comando ant.

James Lawruk
fonte
4
JAVA_HOME variável fixas tudo, muito obrigado :)
krinn
4
PATH com /bin , JAVA_HOME sem /bin
Daniel W.
1
Obrigado, eu estava procurando por isso por horas !!
precisa saber é o seguinte
1
Trabalho como charme em Windows8.1
Umar Abbas
TRABALHO COMO UM ENCANTO !! OBRIGADO
Heidi
28

Eu tive o mesmo problema e copiar C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar para C:\Program Files\Java\jre6\lib\ext trabalhar para mim

Kamlesh Pant
fonte
4
Poluir instalações locais com classes que claramente não pertencem a ela pode levar à Síndrome de Works on my machine. Isso é mesmo se um processo formal de criação estiver em vigor. tools.jar, que contém classes não essenciais para suporte das ferramentas e utilitários no JDK
real_paul 2/02/16
10

Defina sua JAVA_HOMEvariável ambiental para apontar C:\Program Files\Java\jdk1.7.0_02.

Zorayr
fonte
10

Se você estiver no Linux, poderá resolver isso instalando o java no sistema:

sudo apt-get install openjdk-7-jdk openjdk-7-jre
mimoralea
fonte
Obviamente, você pode usar 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' para Java 8
Schlenger
7

Não, de acordo com sua estrutura de diretórios, você instalou um JRE, não um JDK. Há uma diferença.

C:\Program Files\Java\jre6\lib
                      ^^^^

Deve ser algo como:

C:\Program Files\Java\jdk1.6.0_24
Sean Patrick Floyd
fonte
sim você está certo! mas como posso desinstalar o jre? obrigado antecipadamente
olidev
Iniciar> Painel de Controle> Programas (ou similar, dependendo Win * versão)
Sean Patrick Floyd
mas não há opção como essa para remover o jre. Eu acabei de verificar!
olidev
@ Joesy OK, se você não conseguir encontrá-lo, deixe-o, não há necessidade de desinstalá-lo (exceto para recuperar espaço em disco). Você pode ter muitos JDKs e / ou JREs instalados em paralelo
Sean Patrick Floyd
7

Se você instalou o JDK 9.0.1, também terá esse problema, pois o tools.jar foi descontinuado. Consulte o documento de migração .

Graham Chiu
fonte
5

Não gaste muito tempo procurando tools.jar . Se você receber um erro como esse, não fique chateado.

Se você já possui o Java JDK 1.5, vá para a sua libpasta e ela tools.jardeverá estar disponível lá. Copie e cole-o na sua binpasta ant e tente usar o comandoant -version .

Você deve ver o resultado esperado.

sathiya
fonte
2
essa abordagem é recomendável?
S_M
4

Eu tive o mesmo problema em uma máquina Linux. Fiquei bastante frustrado no começo, porque instalei o JDK e o JRE. Estou usando as versões 1.6, 1.7 e 1.8 simultaneamente e brinquei muito com as alternativas para definir tudo corretamente.

O problema era bastante estúpido de resolver, mas contra-intuitivo. Enquanto eu estava usando o JDK correto, prestei atenção no caminho das ferramentas que o maven denunciou - esperava que fosse

$JAVA_HOME\..\lib\tools.jar

A $JAVA_HOMEvariável apontou diretamente para minha jdkpasta ( /usr/local/javaque também era a $PATHentrada correta e o link simbólico alternativo). Na verdade, ele procura a libpasta fora do diretório java, porque:

$JAVA_HOME\..\lib\tools.jar

resolverá

/usr/local/lib/tools.jar

e esse não é um local válido.

Para resolver isso, a $JAVA_HOMEvariável deve apontar para esse local /usr/local/java/jre(assumindo que o caminho do JDK seja /usr/local/java) - na verdade, existe uma jrepasta dentro do diretório de instalação do JDK, que acompanha cada JDK. Essa nova configuração fará com que o maven veja o diretório JRE, que faz parte do JDK:

$JAVA_HOME\..\lib\tools

que agora resolve

/usr/local/java/jre/../lib/tools.jar

e finalmente para

/usr/local/java/lib/tools.jar

que é onde tools.jarrealmente reside.

Portanto, mesmo que você esteja usando o JDK em vez do JRE, o $ JAVA_HOME deve apontar para o JRE. Lembre-se de que a alternativa do SO ainda deve se referir ao JDK.

Ivaylo Slavov
fonte
1
Eu tenho o mesmo problema com o Windows, use você resolveu o meu problema.
Yigang Wu
Eu tentei tudo isso e ainda recebo o problema com o tools.jar. Randoop vale o esforço? Significado significa gerar testes de unidade decentes? A parte frustrante disso é que CADA outro programa java na minha caixa do Windows funciona bem.
Sr. Smith
@ MrSmith, qual é o caminho que o Randoop procura quando você recebe o erro. Talvez o Randoop tenha sua própria configuração de ambiente que diz onde está o JRE? Além disso, você reabriu as janelas do shell (se estiver executando a partir do shell) após alterar as variáveis ​​env?
Ivaylo Slavov
3

vá para o seu caminho jdk onde você instalou seu java

Por exemplo, no meu PC, o JDK instalado no seguinte caminho

"C: \ Arquivos de programas \ Java \ jdk1.7.0_17 \";

Depois vá para a pasta lib, por exemplo, "C: \ Arquivos de Programas \ Java \ jdk1.7.0_17 \ lib"

no diretório lib, há o arquivo tool.jar

Copie este arquivo e cole-o no diretório lib forlder do jre7, por exemplo

"C: \ Arquivos de Programas \ Java \ jre7 \ lib"

sandeep
fonte
2

Eu tive o mesmo problema mesmo depois de instalar o Java JDK e definido JAVA_HOMEcomo..\jdk1.6.0_45\bin pasta.

Ant ainda está tentando encontrar tools.jarna C:\Program Files\Java\jre6\libpasta.
Corrigi-o adicionando JAVACMDvariável de ambiente e defina o caminho para ele java.exena jdkpasta
No meu caso foiC:\Program Files\Java\jdk1.6.0_45\bin\java.exe

user3243105
fonte
2

Você pode enfrentar um problema semelhante no Ubuntu:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

O problema é com JAVA_HOME que não está definido corretamente.

Então, no Ubuntu 14.04 x64 usando Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Sasha Zezulinsky
fonte
2

foi resolvido comigo no sistema operacional Windows, definindo a variável JAVA_HOME antes de executar da seguinte maneira:

configure JAVA_HOME = C: \ Arquivos de Programas \ Java \ jdk1.8.0_111

Ramy Feteha
fonte
Eu tive que forçar isso. O Ant 10+ está procurando o JDK em uma variável desconhecida. Não consegui encontrar de onde estava conseguindo o JDK, mas quando consegui na linha de comando e forcei o JAVA HOME, funcionou.
Cummings
2

Como muitas pessoas mencionaram, parece que você está procurando no seu JRE em vez do JDK para o arquivo tools.jar.

Também gostaria de mencionar que nas versões recentes do JDK, não há mais arquivo tools.jar. Eu baixei o JDK mais recente a partir de hoje (JDK versão 12) e não encontrei nenhum tools.jar. Eu tive que baixar o JDK versão 8 (1.8.0) aqui https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html para obter o arquivo tools.jar. Eu baixei essa versão, peguei o arquivo tools.jar e coloquei na pasta lib da minha versão recente.

alt440
fonte
1

Certifique-se de que os caminhos% JAVA_HOME% e% JAVA_HOME% / bin sejam adicionados à sua variável PATH.

Todas as respostas sobre como copiar o tools.jar para a posição correta são na melhor das hipóteses.

Verifique se o seu IDE pode encontrar esses jarros da maneira como foi projetado e destinado.

Jørgen Skår Fischer
fonte
1

Na janela eclipse> preferências> Java> JRE instalado, apontei o diretório para o diretório jre no jdk 1.7 e trabalhei o arquivo para mim, por exemplo, C: \ Arquivos de programas \ Java \ jdk1.7.0_71 \ jre

Vimal Basdeo
fonte
1

Eu tinha meu JDK_path ( C:\Program Files\Java\jdk1.7.0_79) no meu JAVA_HOMEe também o JDK_path \ bin no meuPATH . Mas minha formiga ainda estava usando o JRE em vez do JDK.

O problema era que eu tinha C:\ProgramData\Oracle\Java\javapathantes do meu JDK_path na PATHvariável. Simplesmente mudei meu JDK_path antes do oracle one e o problema foi resolvido.

Arashsoft
fonte
1

resolvendo esse problema, simplesmente copiei o arquivo tools.jar de C: \ Arquivos de programas \ Java \ jre1.8.0_112 \ lib para C: \ Arquivos de programas \ Java \ jdk1.8.0_112 \ lib para que eu tenha duas ferramentas.jar arquivos em vez de um e o problema desapareceu.

estudiante
fonte
0
Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

se você instalou o jdk, então

..Java/jdkx.x.x

pasta deve existir lá, então em estolá-lo e dar caminho completo como

C:\Program Files\Java\jdk1.6.0\lib\tools.jar
Nirmal- tinta além
fonte
0

Verifique se o caminho da classe está definido corretamente e apontando para a versão correta do JDK que você instalou. Além disso, você está usando o Open JDK? Já tive esse problema antes de tentar passar do JDK aberto para o Suns JDK. Este é um exemplo de como esse problema poderia ser corrigido.

John Kane
fonte
0

O maven-compiler-plugin usa jdk, não jre, tools.jar está em C: \ Arquivos de programas \ Java \ jdk1.6.0 \ lib \ tools.jar, você deve configurar o projeto JRE System Libary com jdk, não jar. Esta é a solução mais simples.

living.li
fonte
0
  • Clique com o botão direito do mouse no seu arquivo ant
  • Vá para "Executar como" e clique em "Ant Build ..."
  • Vá para a aba "JRE"
  • Selecione um JDK e não um JRE
RotS
fonte
0

Para mim, o que está funcionando: baixei uma versão antiga do Java 1.7

Na verdade, eu configurei meu JAVA_HOME de C: / arquivos de programa X86 / Java, mas depois de instalar a versão 1.7, eu tinha outro Java nos arquivos de programa / Java. E nesse momento encontrei o tools.jar aqui. Então mudei para esse novo caminho e está funcionando

Florent Giraud
fonte
0

Eu também estava enfrentando o mesmo erro. Isso foi removido após a configuração do caminho Java_Home como C: \ Arquivos de Programas \ Java \ jdk1.8.0_121. Verifique se bin não está incluído no caminho e não há barra após jdk1.8.0_121 depois de definir% JAVA_HOME% \ bin na variável de caminho do sistema.

Nits
fonte
0

Se você estiver em um ambiente RHEL, o nome do pacote que contém tools.jar terminará com "openjdk-devel".

TastyWheat
fonte
0

Esta é a solução para Windows: em Computador> Configurações avançadas do sistema> Avançado> Variáveis ​​de ambiente ... , adicione-o em Variáveis ​​do sistema :

insira a descrição da imagem aqui

Basj
fonte
0

Eu baixei tools.jar e depois copiei no caminho na mensagem de erro.

C: \ Arquivos de programas \ Java \ jdk-11.0.1 \ bin> cole aqui tools.jar

Depois disso, reiniciei o Spring Tool Suit 4 e tudo estava funcionando. Quando estava tentando corrigir esse problema, criei uma nova variável ambiental: Painel de Controle / Sistema / Avançado / Variáveis ​​ambientais / novo Nome: JAVA_HOME Valor: C: \ Arquivos de Programas \ Java \ jdk-11.0.1 Mas não sei se é é necessário.

astatyzm
fonte
0

talvez você tenha atualizado os JREs no SO e a adição tenha adicionado no "caminho" das variáveis ​​de ambiente uma entrada "... / Oracle / jer" que substitua seu JAVA_HOME. tente removê-lo do "caminho" deixando JAVA_HOME.

pagurix
fonte
0

No caso de ajudar, o problema para mim era que eu tinha duas entradas na minha variável de ambiente PATH que apontavam para um local que continha o executável javaw.

Limpei a variável para garantir que "% JAVA_HOME% \ bin" fosse a única entrada que referenciasse um local contendo meus executáveis ​​java.

GarethPN
fonte