Como definir java_home no Windows 7?

422

Eu fui para as Variáveis ​​de ambiente em 'Sistema' no painel de controle e criei duas novas variáveis, uma para variáveis ​​de usuário e outra para variáveis ​​de sistema. Ambos foram nomeados JAVA_HOME e ambos apontando para

C: \ Sun \ SDK \ jdk \ bin

Mas, por algum motivo, ainda recebo o erro abaixo ao executar um comando Java ...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

Como posso resolver este problema?

Derek
fonte
3
Você fechou o cmd e reabriu? Também parece que você está apontando para o JRE e não o JDK. Você instalou o JDK?
raiva
Definitivamente, instalei o JDK e ele está localizado em C: \ Sun \ SDK \ jdk \ bin no qual configurei o java_home.
Derek
Eu até reiniciei ......... algumas vezes desde ........
Derek
Ainda assim, parece estar olhando em C: \ Arquivos de programas \ Java \ jre6 \ lib \ c Você pode fazer echo% JAVA_HOME% no seu prompt de comando e ver o que ele relata
a raiva
3
A solução é: Omit / bin
IceFire

Respostas:

673

Encontre o diretório de instalação do JDK

Primeiro, você precisa conhecer o caminho da instalação do Java Development Kit.

Abra o caminho de instalação padrão para o JDK:

C:\Program Files\Java

Deve haver um subdiretório como:

C:\Program Files\Java\jdk1.8.0_172

Nota: basta colocar o caminho para o jdk sem / bin no final (como sugerido em muitos lugares). por exemplo, C: \ Java \ jdk1.8.0_172 e NÃO C: \ Java \ jdk1.8.0_172 \ bin!


Defina a variável JAVA_HOME

Depois de ter o caminho da instalação do JDK:

  1. Clique com o botão direito do mouse no ícone Meu computador na área de trabalho e selecione Propriedades .
  2. Clique na guia Avançado e clique no botão Variáveis ​​de ambiente .
  3. Em Variáveis ​​do sistema , clique em Novo.
  4. Digite o nome da variável como JAVA_HOME .
  5. Digite o valor da variável como o caminho da instalação para o Java Development Kit.
  6. Clique em OK .
  7. Clique em Aplicar alterações .

Nota: Pode ser necessário reiniciar o Windows

O artigo completo está aqui, no meu blog: Definindo a variável JAVA_HOME no Windows .

Robs
fonte
121
obrigado. finalmente percebi que é preciso apenas colocar o caminho para o jdk sem / bin no final (como sugerido em muitos lugares). por exemplo, C: \ Java \ jdk1.6.0_31 e NÃO C: \ Java \ jdk1.6.0_31 \ bin!
salocinx
24
Deus não permita que houvesse um instalador que fizesse essa etapa para você :) Acabei de mudar da versão Enterprise para a versão Community e estava convencido de que baixei a coisa errada, porque havia um clique na versão Enterprise: p
John Humphreys - w00te 26/04/12
6
Às vezes, as alterações variáveis ​​do sistema não entram em vigor até você reiniciar o Windows.
Andy
11
Um método mais rápido é para bater em Iniciar, em seguida, iniciar as variáveis de ambiente de digitação
Casebash
4
/Java/jre*não é o diretório JDK, este é o diretório Java Runtime Enviroment. O JDK está em um diretório separado, a menos que você queira fazer algum truque maluco
ericn
157

O que funcionou para mim foi adicionar a %JAVA_HOME%\binvariável de ambiente Path com a JAVA_HOMEvariável de ambiente apontando para a jdkpasta.

fogedi
fonte
126

Você precisa primeiro instalar o JDK no seu sistema.

Definir Java Home

JAVA_HOME = C: \ Arquivos de Programas \ Java \ jdk1.7.0 [Localização do diretório de instalação do JDK]

Depois de ter o caminho da instalação do JDK:

  • Clique com o botão direito do mouse no ícone Meu computador em
  • Selecione Propriedades.
  • Clique na guia Configurações avançadas do sistema, no lado esquerdo da tela.
  • O Aadvance Popup está aberto.
  • Clique no botão Variáveis ​​de ambiente.

insira a descrição da imagem aqui

  • Em Variáveis ​​do sistema, clique em Novo.
  • Digite o nome da variável como JAVA_HOME.
  • Digite o valor da variável como o caminho da instalação para o Java Development Kit.
  • Clique OK.
  • Clique em Aplicar alterações.

Definir caminho JAVA na variável do sistema

CAMINHO = C: \ Arquivos de Programas \ Java \ jdk1.7.0; [Anexar valor com ponto e vírgula]

Verifique aqui

Ankit jain
fonte
14
JAVA_HOME deve conter "\ bin"? Outras respostas aqui parecem sugerir que "bin" deve ser incluído para PATH, mas não para JAVA_HOME.
Devuxer #
72
JAVA_HOME NÃO deve conter \ bin.
Larry Silverman
5
[MAIS UM] Lindas flores!
GingerHead
Mas na imagem você entra com \ bin.
NaveenDA
32

No cmd (temporariamente para essa janela do cmd):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%
sgrillon
fonte
2
Verdade. Se você usar setx, o JAVA_HOMEainda será definido após o desligamento do computador. Então você não precisa defini-lo novamente. Também binnão é necessário.
Tenzin
Sim, mas se você não deseja instalar oficialmente o Java, como o sgrillon disse, você pode configurá-lo temporariamente para essa instância. Melhor ainda, crie um arquivo em lotes que você pode executar para abrir uma janela e um conjunto de prompt de comando JAVA_HOME, PATHe CLASSPATH, em seguida, você pode ter um ambiente Java “portátil”.
21915 Synetech
É verdade, mas "" não é necessário para definir o endereço JAVA_HOME
Aboozar Rajabi
1
@Aboozar Rajabi, Você precisa "" se ... o caminho contiver um caractere de espaço.
precisa saber é o seguinte
19

Você precisa configurá-lo como C:\Sun\SDK\jdk(Supondo que seja onde o JDK está instalado - não é o padrão) - Não coloque o \ bin C:\Sun\SDK\jdk\bin.

Se seu aplicativo for executado apenas quando você estiver conectado como usuário atual, coloque-o nas variáveis ​​de usuário - Se precisar executar para todos os usuários do sistema, coloque-o em Variáveis ​​do sistema.

Também pode ser necessário adicionar %JAVA_HOME%\binao caminho (também depende se você o executa apenas do usuário ou de todos os usuários, incluindo o Sistema)

Romain Hippeau
fonte
17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

Painel de controle> Java, guia Java, clique no botão Exibir. Em Parâmetros de Tempo de Execução, coloque:

-Djava.home=YOUR_PATH_HERE

Ou, quando você executa o Java, pode adicionar essa opção de linha de comando ao comando:

java -Djava.home=PATH SomeJavaApp
Ricket
fonte
O painel de controle parece se aplicar apenas à versão comercial do Java. Não para a versão GPL.
Thomas Weller
7

Para aqueles que ainda estão perplexos com esse problema (tentei todas as sugestões acima) -

Se você está na versão de 64 bits do Windows e instalou o JDK de 32 bits, além de ajustar PATHvariáveis, pode ser necessário ajustar o registro variáveis ​​de .

Eu estava arrancando os cabelos, depois de definir corretamente minhas PATHvariáveis ​​- ainda sem sucesso - e depois encontrar apenas entradas Java "desocupadas" em meu registro, aparentemente um beco sem saída para corrigir o "Java Funtime Environment" que falhou.

Ao usar Process Monitorpara assistir ao programa que estava tentando iniciar, para descobrir onde ele estava procurando no registro para Java (Runtime Environment), eu triunfantemente descobri que ele estava procurando na versão de 32 bits das entradas do registro, encontrada em HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment.

Dentro dessa chave, você deve encontrar subchaves de diferentes versões Java instaladas (anteriores e / ou atuais). Clique na subchave da versão mais recente (minha subchave é 1.7.0_25, por exemplo). Depois de clicar nessa subchave, você verá os valores das seqüências de registro listados à direita e, particularmente, JavaHomee RuntimeLib. Você precisa modificar os valores desses dois valores para refletir os valores atuais pasta e o arquivo jvm.dll, respectivamente.

Por exemplo, no meu caso, os valores foram (anteriormente) respectivamente definidos em C:\Program Files (x86)\Java\jre7e C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllque não existem na minha máquina. Eu tive que atualizá-los para a pasta e arquivo atuais de C:\Program Files (x86)\Java\jdk1.7.0_25\jree C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll.

Novamente, isso dependerá inteiramente de qual versão do Java (JDK e / ou JRE) você instalou - 32 ou 64 bits - e que tipo de sistema operacional você está - 32 ou 64 bits. Apenas saiba que eles são refletidos em diferentes locais dentro do registro (como oWow6432Node aplicativos de 32 bits, no meu caso com o JDK de 32 bits instalado em uma máquina de 64 bits).

Agora que atualizei esses dois valores do registro, meu programa é executado sem falhas, sem mais soluços ou reclamações sobre um Java Runtime Environment ausente (proveniente do registro).

Coldblackice
fonte
1
Estou na máquina Windows 7 de 64 bits e tenho ambos: C: \ Arquivos de Programas (x86) \ Java \ e C: \ Arquivos de Programas \ Java \ Agora, minha pergunta é: qual deve ser o meu java_home para apontar?
precisa saber é o seguinte
Interessante; Eu só tenho a pasta Java abaixo da pasta x86.
B. Clay Shannon
Em C: \ Arquivos de programas (x86) \ Java \ jdk1.7.0_25 \ jre \ bin Eu não tenho um cliente de diretório, ele existe apenas em C: \ Arquivos de programas (x86) \ Java \ jre7 \ bin. O que devo fazer?
Pavol Havlik 22/09
No Windows 7, depois de pesquisar a palavra-chave "1.8.0_74", encontrei vários registros usando o regedit no HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / ou ../1.8.0_65 e todos os outros instalados anteriormente ... Depois de excluir um por um registro da parte inferior para o meu java 1.8.0_112 instalado mais recente, agora o YourKit java profiler (profiler.exe) funciona sem erro: "Ocorreu um erro ao iniciar o C: \ Arquivos de Programas \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ".
David
7

Esta é a solução oficial para definir o ambiente Java em www.java.com - aqui .

Existem soluções para o Windows 7, Windows Vista, Windows XP, Linux / Solaris e outros shells.


Exemplo

Windows 7

  1. Selecione Computador no menu Iniciar
  2. Escolha Propriedades do sistema no menu de contexto
  3. Clique em Configurações avançadas do sistema -> guia Avançado
  4. Clique em Variáveis ​​de ambiente, em Variáveis ​​do sistema, localize PATH e clique nele.
  5. Nas janelas de edição, modifique PATH adicionando o local da classe ao valor de PATH. Se você não possui o item PATH, pode selecionar adicionar uma nova variável e adicionar PATH como o nome e o local da classe como o valor.
  6. Reabra a janela do prompt de comando e execute seu código Java.
HATCHA
fonte
1
As instruções oficiais são inúteis. Eles fornecem apenas instruções genéricas sobre como definir variáveis ​​de ambiente em vez de indicar o valor que precisa ser definido. Eles simplesmente dizem para defini-lo como "a localização da classe", que é confusa e sem sentido.
21415 Synetech
Essas instruções não configuram JAVA_HOME, uma variável totalmente separada do PATH, necessária para alguns programas.
Jules
6

Windows 7

  1. Vá para Painel de controle \ Todos os itens do painel de controle \ Contas de usuário usando o Explorer (não o Internet Explorer!)

    ou

    • clique no botão Iniciar

      começar

    • clique na sua foto

      clickOnPhoto

  2. Alterar minhas variáveis ​​de ambiente

    Alterar minhas variáveis ​​de ambiente

  3. Novo...

    Novo

    (se você não tiver permissões suficientes para adicioná-lo na seção Variáveis ​​do sistema, adicione-o à seção Variáveis ​​do usuário)

  4. Inclua JAVA_HOME como nome da variável e o local do JDK como valor da variável> OK

    editar variável do sistema ok

Teste:

  • abrir um novo console (cmd)
  • tipo set JAVA_HOME
    • resultado esperado: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
ROMANIA_engineer
fonte
6

Precisamos fazer uma distinção entre as duas variáveis ​​de ambiente discutidas aqui de forma intercambiável. Uma é a variável JAVA_HOME . O outro é o caminho variável . Qualquer processo que faça referência à variável JAVA_HOME está procurando o caminho de pesquisa para o JDK, não o JRE. O uso da variável JAVA_HOME não se destina ao próprio compilador Java. O compilador está ciente de sua própria localização. A variável é destinada a outro software para localizar mais facilmente o compilador. Essa variável é normalmente usada pelo software IDE para compilar e construir aplicativos a partir do código-fonte Java. Por outro lado, o intérprete do Windows CMD e muitos outros softwares de primeiro e de terceiros referenciam a variável Path, não a variável JAVA_HOME.

Caso de uso 1: Compilando a partir do CMD

Por exemplo, se você não estiver usando nenhum software IDE e quiser compilar a partir do CMD, independentemente do diretório de trabalho atual, o que você deseja é definir a variável Path corretamente. No seu caso, você nem precisa da variável JAVA_HOME. Como o CMD está usando Path, não JAVA_HOME para localizar o compilador Java.

Caso de uso 2: Compilando a partir do IDE

No entanto, se você estiver usando algum software IDE, será necessário examinar primeiro a documentação. Pode exigir que JAVA_HOME seja definido, mas também pode usar outro nome de variável para a mesma finalidade. O padrão de fato ao longo dos anos tem sido JAVA_HOME, mas isso nem sempre pode ser o caso.

Caso de uso 3: Compilando a partir do IDE e CMD

Se, além do software IDE, você também desejar compilar a partir do CMD, independentemente do diretório de trabalho atual, além da variável JAVA_HOME, também será necessário anexar o caminho de pesquisa do JDK à variável Path.

JAVA_HOME vs. Caminho

Se o seu problema estiver relacionado à compilação de Java, você deverá verificar a variável JAVA_HOME e Path (onde aplicável). Se o seu problema estiver relacionado à execução de aplicativos Java, você deseja verificar sua variável Path.

A variável de caminho é usada universalmente em todos os sistemas operacionais. Por ser definido pelo sistema e por ser a variável padrão usada para localizar o JRE, quase nunca há problemas ao executar aplicativos Java. Especialmente no Windows, onde os instaladores de software geralmente configuram tudo para você. Mas se você estiver instalando manualmente, a coisa mais segura a fazer é talvez ignorar completamente a variável JAVA_HOME e apenas usar a variável Path para tudo, tanto para o JDK quanto para o JRE. Qualquer versão recente de um software IDE deve ser capaz de buscá-la e usá-la.

Symlinks

Os links simbólicos podem fornecer ainda outra maneira de referenciar o caminho de pesquisa do JDK pegando carona uma das variáveis ​​de ambiente existentes.

Não tenho certeza sobre as versões anteriores das versões Oracle / Sun JDK / JRE, mas pelo menos o instalador do jdk1.8.0_74 anexa o caminho de pesquisa C:\ProgramData\Oracle\Java\javapathà variável Path e o coloca no início do valor da string. Este diretório contém links simbólicos para o java.exe, javaw.exe e javaws.exe no diretório JRE.

Portanto, pelo menos com o Java 8 JDK e presumivelmente o Java 8 JRE independente, nenhuma configuração de variável de ambiente precisa ser feita para o JRE. Contanto que você use o pacote do instalador para configurá-lo. No entanto, pode haver diferenças na instalação do Windows. Observe que o Oracle JRE é fornecido com o JDK.

Se você achar que sua configuração do Java JDK está usando a versão errada do compilador ou parece estar funcionando por mágica, sem ser explicitamente definida (sem lançar o feitiço), é possível que haja um link simbólico em algum lugar nas variáveis ​​de ambiente . Portanto, convém verificar o link simbólico.

Samir
fonte
5

vá para Mycomputer (Este PC) -> clique com o botão direito -> selecione propriedades -> Configurações avançadas do sistema -> variáveis ​​de ambiente -> nas variáveis ​​do sistema, clique no botão " Novo " e escreva JAVA_HOME no nome e no caminho da variável C: \ Arquivos de Programas \ Java \ jdk1. 8.0_131 onde jdk está presente no valor da variável-> clique em ok.

feche e reabra o prompt de comando após definir JAVA_HOME. Às vezes, as alterações não refletem no cmd aberto antes de definir o JAVA_HOME.

você também pode definir JAVA_HOME através do próprio terminal: SET JAVA_HOME = "C: \ Arquivos de Programas (x86) \ Java \ jdk1.8.0_131"

Shreya Sharma
fonte
4

No Eclipse: Window->Preferences->Java->Installed JREs

Use o recurso de pesquisa para garantir que sua instalação Java mais recente esteja listada; verifique se é o que está marcado. Este deve ser um JDK, não um JRE.

Berg
fonte
Estas instruções não configuram JAVA_HOME, que não está relacionado ao eclipse.
Jules
4

Ao adicionar o diretório Java à sua PATHvariável, você pode colocá-lo logo no início. Eu tive o problema, que colocar o diretório Java no final do PATHnão funcionaria. Após a verificação, encontrei java.exeno meu Windows\System32diretório e parece que o primeiro vence, quando existem vários arquivos com o mesmo nome no seu diretório PATH...

user2414128
fonte
Quando / se você instala o Java com o instalador, ele substitui as cópias java.exee javaw.exenas pastas do sistema pelas cópias do JRE / JDK, portanto, ainda deve funcionar. Se você instalá-lo manualmente (basta descompactar os arquivos), será necessário ter cuidado com a cópia que está sendo executada.
21915 Synetech
Essas instruções não configuram JAVA_HOME, uma variável totalmente separada do PATH, necessária para alguns programas.
Jules
3

Execute o Eclipse como administrador.

Isso resolveu meu problema. Eu ainda estou procurando a lógica por trás disso.

muscailie
fonte
1
Não posso dizer que entendi exatamente, mas talvez o eclipse esteja apenas dando a mensagem de erro errada aqui. Quando você o executa como não administrador, ele não pode excluir os arquivos .jar ou algo assim e, em seguida, informa falsamente que não encontrou o javac. Enfim, essa solução funcionou para mim também.
21711 Jess
se você estiver executando o Eclipse no Windows Server 2012 R2, como no meu caso, executando o eclipse como administrador funciona para mim. Lembre-se também de definir o java_home na pasta de arquivos do programa e não na pasta de arquivos do programa (86). Espero que este ajude alguém.
ombiro
2

se você não reiniciou o computador após instalar o jdk, basta reiniciar o computador.

Se você deseja criar um java portátil e definir o caminho antes de usá-lo, basta criar um arquivo em lotes que expliquei abaixo.

Se você deseja executar este arquivo em lotes quando o computador iniciar, basta colocar o atalho do arquivo em lotes na pasta de inicialização. No Windows 7, a pasta de inicialização é "C: \ Usuários \ usuário \ AppData \ Roaming \ Microsoft \ Windows \ Menu Iniciar \ Programas \ Inicialização"

faça um arquivo em lotes como este:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

nota: java_homee pathsão variáveis. você pode fazer qualquer variável como desejar. por exemplo, set amir=good_boye você pode ver Amir por %amir%ou você pode ver java_home por%java_home%

Amir
fonte
0

Após horas de trabalho em torno da maioria das soluções aqui, o problema foi resolvido para mim apenas com a instalação do JDK de 32 bits.

Vahid Ghadiri
fonte
1
O que é bom se é isso que você deseja, mas algumas pessoas preferem não instalar o Java e simplesmente configurar um ambiente "portátil" manualmente; nesse caso, você precisa saber quais variáveis ​​de ambiente precisam ser definidas.
21915 Synetech
0

Você pode procurar na pasta Windows / System32 os seguintes arquivos: - java.exe - javaw.exe - javaws.exe

Como a variável path está incluindo esses arquivos, você pode ficar com dor de cabeça tentando descobrir por que a versão java-version ou javac -version continua apontando para o antigo JAVA_HOME: renomeie esses arquivos, remova a extensão com um sublinhado, por exemplo. E então, você apenas precisará criar a variável JAVA_HOME, adicioná-la à variável de caminho (por exemplo,% JAVA_HOME%) e anexar a partícula "\ bin". Dessa forma, você precisa alterar apenas a variável JAVA_HOME apontando para JRE ou JDK diferente e ter várias instalações de java apenas configurando JAVA_HOME.

Isso também significa que é melhor instalar o Java manualmente, sem um instalador, para que você possa brincar com ele.

Camilo
fonte