Como faço para persuadir o Windows a usar o JDK em vez de um JRE?
Esta pergunta já foi feita antes, aqui e em outros lugares:
Como defino a instalação / tempo de execução padrão do Java (Windows)?
O problema é que o Windows ignora JAVA_HOME
e também ignora o fato de que fiz do diretório bin do JDK a primeira entrada no caminho.
Quando executo a java -version
partir da linha de comando, em vez de invocar minha instalação do JDK 1.6, ele executa o 1.7 JRE.
Meu palpite é que este é um problema específico do 1.7 e o Windows 7 está fazendo algo que não deveria com o registro.
Alguma ideia de como consertar isso?
Editar : Oops. Eu escrevi "primeira entrada no caminho de classe" acima, quando quis dizer "caminho". Desculpa.
%JAVA_HOME%\bin
na primeira posição dapath
variável no Windows 10 e trabalho para mim.No Windows 8, você pode querer remover o
C:\ProgramData\Oracle\Java\javapath
diretório.do caminho
Isso resolveu meu problema.
fonte
eu tenho esse problema também. Estou executando o 1.6, mas quero construir o código no qual estou trabalhando com o 1.5. Eu mudei o
JAVA_HOME
ePATH
(usuário e sistema) sem sucesso.A resposta é que o instalador para 1,6 cair
java.exe
,javaw.exe
ejavaws.exe
na minhaWindows\System32
pasta (Windows 7).Eu resolvi renomeando os arquivos para
java_wrong.exe
,javaw_wrong.exe
, ejavaws_wrong.exe
. Só depois de fazer isso, ele pega a versão correta do java, conforme definido emJAVA_HOME
ePATH
. Eu renomei os arquivos desta forma porque os exclui de uma maneira facilmente reversível.Espero que isto ajude!
fonte
O Windows não ignora nada. Este é um problema com sua configuração; O Windows usa apenas o que você fornece. Não tem nenhum conhecimento especial de
JAVA_HOME
.CLASSPATH
também não tem nada a ver com o Windows. Para o Windows, é apenas uma variável de ambiente que é expandida para um local de pasta.Verifique sua
%PATH%
variável ambiental. É o que faz o Windows encontrar um antes do outro. O caminho (conforme a postagem que você vinculou disse) deve apontar%JAVA_HOME%\bin;<remainder of path>
. Novamente, o post ao qual você criou um link oferece uma maneira de definir isso usando um arquivo em lote.(Para outras pessoas que talvez não saibam disso: a maneira mais fácil de inspecionar% PATH% é abrir um prompt de comando e digitar
echo %PATH%
. Você também pode acessá-lo clicando com o botão direito do mouse noComputer
painel direito do menu Iniciar e escolhendoProperties
, entãoAdvanced System Settings
, e oEnvironmental Variables
botão tne .)fonte
JAVA_HOME
que o Windows.JAVA_HOME
deve ser definido como a raiz da instalação do java. O caminho deve ter%JAVA_HOME%\bin;<remainder of path%gt;
, caso contrário, você acabará não "encontrando" java, javac, etc. Claro, o Windows só realmente olha para aPATH
variável, mas algumas ferramentas relacionadas a java olhamJAVA_HOME
ocasionalmente.\bin
também. Obrigado.Eu tive o mesmo problema. Tenho várias versões do Java instaladas e, por algum motivo, o Java 1.7 estava sendo usado em vez do Java 1.6, embora eu tenha especificado no caminho para usar o 1.6 (C: \ jdk1.6.0_45_32 \ bin).
Tive que mover o caminho do JDK que queria usar (1.6) para ser a primeira entrada na variável de ambiente PATH para garantir que o Windows use 1.6 em vez de 1.7.
Então, por exemplo, a variável de ambiente PATH antes era:
C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin
e depois que movi o jdk para ser o primeiro, funcionou:
C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin
Acho que o instalador do Windows do Java 1.7 o instalou em algum outro diretório já no PATH, sendo usado primeiro em vez da entrada PATH personalizada especificada C: \ jdk1.6.0_45_32 \ bin;
fonte
Para o meu caso na
'Path'
variável, foi adicionado um parâmetro como 'C:\ProgramData\Oracle\Java\javapath;
'. Este local estava tendojava.exe
,javaw.exe
ejavaws.exe
de java 8 que é recentemente instalado viajdk.exe
Oracle.Eu removi este texto de Path onde meu Path já
%JAVA_HOME%\bin
estava com ele.Agora, a variável
'JAVA_HOME'
está controlando minha versão do Java que eu queria.fonte
Suponha que você tenha instalado o JDK 10 após o JDK 8 e na variável de ambiente do sistema defina o caminho como "C: \ ProgramData \ Oracle \ Java \ javapath" e controle de versão do Java por este caminho. ele irá ignorar JAVA_HOME mesmo o caminho jdk 1.8 definido aqui Portanto, remova "C: \ ProgramData \ Oracle \ Java \ javapath" no caminho para obter efeito do caminho JAVA_HOME
fonte
Defina a variável de ambiente Path para o diretório jdk / bin desejado
fonte
Eu tinha o Java 7 e 8 instalado e quero redirecionar para o java 7, mas a versão do java na minha janela de prompt do cmd mostra o Java 8.
Adicionado o caminho do diretório bin do Java 7 ( C: \ Program Files \ Java \ jdk1.7.0_10 \ bin ) para a variável PATH no final, mas não deu certo e mostra Java 8. Então eu mudei o caminho do Java 7 para o início do valor do caminho e funcionou.
Abri uma nova janela de prompt do cmd e verifiquei minha versão java e agora mostra Java 7
fonte
No meu caso, eu tinha Java 7 e 8 (ambos x64) instalados e quero redirecionar para java 7, mas tudo está configurado para usar Java 8. Java usa a variável de ambiente PATH:
como a primeira opção para procurar seu tempo de execução de pasta (é uma pasta oculta). Este caminho contém 3 links simbólicos que não podem ser editados.
No meu pc, a variável de ambiente PATH se parece com isto:
No meu caso, deve ser assim:
Tive que recortar e colar os links simbólicos em outro lugar para que o java não pudesse localizá-los e eu pudesse restaurá-los mais tarde.
Depois de definir as variáveis de ambiente JAVA_HOME e JRE_HOME para os tempos de execução das pastas java desejadas (no meu caso, é Java 7), o comando
java -version
deve mostrar o tempo de execução java desejado. Observo que não há necessidade de mexer no registro.Testado em Win7 x64.
fonte
Este problema é provavelmente devido às versões anteriores do Java instaladas em seu sistema. Primeiro verifique suas variáveis de ambiente com cuidado e remova todas as variáveis de ambiente relacionadas às versões anteriores de JAVA e substitua esses caminhos para
C:\Program Files\Java\<your new jdk version>\bin
fonte
Há um fator adicional aqui; além dos executáveis java que a instalação do java coloca onde quer que você os peça para colocá-los, no windows, o instalador do java também coloca cópias de alguns desses executáveis no diretório system32 do Windows, então você provavelmente usará qual era cada executável do java instalado mais recentemente.
fonte
Por precaução, se você estiver usando o arquivo .BAT como serviço do Windows, sugiro desinstalar o serviço do Windows e reinstalá-lo novamente após alterar o% JAVA_HOME% para apontar para a versão correta do Java.
fonte
Depois de lutar com esse problema por algum tempo e pesquisar sobre ele, finalmente consegui resolvê-lo seguindo estas etapas:
1) instale o jdk versão 12
2) Crie uma nova variável na variável de sistema
3) Nomeie-o como JAVA_HOME e forneça o caminho de instalação do jdk
4) adicione essa variável no caminho e mova-a para o topo.
5) vá para C: \ Arquivos de programas (86) \ Arquivos comuns \ Oracle \ Java \ javapath e substitua java.exe e javaw.exe pelos arquivos correspondentes com os mesmos nomes da pasta pathtojavajdk / bin
Finalmente, verifiquei a versão padrão do java em cmd com "java -version" e funcionou!
fonte
Eu tive o mesmo problema, nas configurações das variáveis de ambiente do usuário eu estava configurando JAVA_HOME e PATH corretamente, mas não funcionou. Conforme eu atualizo minhas variáveis de ambiente do sistema, ele começa a funcionar.
fonte