JAVA_HOME deve apontar para JDK ou JRE?

102

Eu apontei JAVA_HOMEpara C:\Program Files (x86)\Java\jre7. Funciona bem. Depois, descompactei o ant e configurei as variáveis ​​de ambiente relacionadas ao Ant, obtive as seguintes mensagens de erro após digitar"ant -version"

imagem

Eu pesquisei neste fórum. Parece que uma solução é apontar Java para JDK em vez de JRE. Não tenho certeza se essa deve ser a solução. Em outras palavras, em geral, para qual JAVA_HOME deve apontar? JDK ou JRE?

user297850
fonte

Respostas:

121

Se você estiver fazendo qualquer tipo de desenvolvimento, ou construindo com Maven ou Ant, você precisa apontar para o JDK (Java Development Kit) onde utilitários como javac(o Java Compiler) residem. Caso contrário, você pode apontar para o JRE (Java Runtime Environment).

O JDK contém tudo o que o JRE tem e muito mais. Se estiver apenas executando programas Java, você pode apontar para o JRE ou o JDK.

David W.
fonte
7
Portanto, JAVA_HOMEé usado para fazer duas coisas: 1: para ferramentas de desenvolvimento, localizar javac.exe. 2: para ferramentas de não desenvolvimento, encontrar java.exe. Isso parece violar "uma ferramenta para uma coisa" . Não deve JDK_HOMEser usado em vez disso?
Pacerier
4
O diagrama neste site mostra a relação entre o JDK e o JRE. docs.oracle.com/javase/8/docs
andrybak
1
É possível validar programaticamente se o caminho Java está definido como JRE ou JDK?
Dinesh Kumar P
9

Simplesmente (mude para seu jdk1.xxx_xx)

JAVA_HOME = C: \ Arquivos de programas \ Java \ jdk1.8.0_05

Amr Lotfy
fonte
6

Meu JAVA_HOME aponta para o JDK. Se ainda não funcionar, verifique se você baixou o ant para Java 7 e não para Java 6.

das_j
fonte
5

Geralmente, não importa se você aponta para o JRE ou JDK. Depende do aplicativo que o utiliza. A documentação do Ant diz que você deve apontar para o JDK para obter todos os recursos do Ant.

Jan Martiška
fonte
2

como desenvolvedor, você deve apontar seu JAVA_HOME para jdk para acessar o copilador javac etc. Porém, é bom se você pode testar seu programa para rodar no JRE. Se você estiver usando um servidor de aplicativos, geralmente também precisará do JDK em vez do JRE, mas isso depende do servidor específico.

Akostadinov
fonte
2

Você pode usar o JDK ou o JRE, mas:

JAVA_HOME é usado pelo iniciador para localizar o JDK / JRE a ser usado. (JDK é recomendado, pois algumas tarefas requerem as ferramentas java.)
. Configuração ANT_HOME

Michaelok
fonte
0

Vamos manter as coisas simples. Vá para configurações e pesquise "Variáveis ​​de ambiente". Assim que a janela de variáveis ​​de ambiente aparecer, simplesmente crie uma nova variável de SISTEMA clicando em NOVO e então PESQUISAR DIRETÓRIO até localizar o caminho de instalação do JDK. O JDK deve ser instalado em arquivos de programa e você verá uma pasta JAVA e dentro da pasta está JDK e JRE ... Se você escrever o código, deve selecionar JDK !!! Não dê ouvidos a ninguém afirmando que JRE será suficiente ... NÃO! Não vai! O diretório adequado deve ser semelhante a C: \ Arquivos de programas \ Java \ jdk1.8.0_144 é tão simples quanto isso!

nexogen.io
fonte
2
@Stephan As respostas existentes já fornecem as informações que me deram ao trabalho de fornecer. Essa é a sua justificativa para downvoting? Esse é o problema de muitos desses tópicos. Por um lado, só porque o princípio básico foi respondido não significa que a resposta foi bem formulada ou mesmo útil. Minha resposta não é igual às respostas anteriores. A resposta que eu forneci veio com instruções precisas
nexogen.io