Por que o java -version está retornando uma versão diferente daquela definida em JAVA_HOME?

18

Meu JAVA_HOME está definido como C:\bea\jdk150_10\bin(Java 1.5). No entanto, quando executo java -version, recebo o seguinte:

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Como posso usar a versão 1.5?

Jeune
fonte

Respostas:

14

Corre

where java

no seu prompt de comando.

No meu sistema, ele imprimiu algo bastante inesperado:

C:\Users\Mikel>where java
C:\Windows\System32\java.exe

Verificando se realmente existe um Java:

C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

Portanto, uma solução é garantir que seu Java preferido esteja no PATH antes C:\Windows\System32.

Eu também tentei olhar no painel de controle Java para ver se ele gerencia a versão C:\Windows\System32, mas eu só podia ver as configurações, não editá-las. Talvez funcione para você?

Mikel
fonte
8

Modifique a PATHvariável, não JAVA_HOME.

Consulte a documentação Java sobre como definir ou alterar sua variável PATH .

  1. Iniciar -> Painel de Controle -> Sistema -> Avançado

  2. Clique em Variáveis ​​de ambiente, em Variáveis ​​do sistema, localize PATHe clique nela.

  3. Nas janelas de edição, modifique PATHadicionando o local da classe ao valor de PATH. Se você não possui o item PATH, pode optar por adicionar uma nova variável e adicionar PATHcomo o nome e o local da classe como o valor.

  4. Feche a janela.

  5. Reabra a janela do prompt de comando e execute seu código Java.

John T
fonte
Também não vejo referências ao jdk 6 na variável PATH. Somente Java 5 X)
Jeune
É um exemplo, o procedimento ainda é o mesmo ..
John T
4

Nem todos os aplicativos usam JAVA_HOMEpara obter a versão do JDK. Como dito anteriormente, alguns deles usam o %SystemRoot%\System32\java.exe. Você pode fazer %SystemRoot%\java.exe -versionpara ver qual é essa versão.

O que tenho a acrescentar às outras respostas é que, se você constrói com o Maven, M2_HOME\bintambém deve estar antes %SystemRoot%para que o Maven use a JAVA_HOMEversão correta .

Mihai Rus
fonte
1

JAVA_HOME não deve estar apontando para a lixeira!

SET "JAVA_HOME = C: \ bea \ jdk150_10" SET "PATH =% JAVA_HOME% / bin;% PATH%"

Verifique também se o caminho para JAVA_HOME está correto! Se houver um erro de digitação e C: \ Windows \ System32 \ estiver no seu caminho, o java.exe será executado em vez do especificado.

Carma ruim
fonte
0

Para mim, na vitória 10, o javac -version mostrou o java7 e o java -version mostrou o java8. Fazer "onde java" no prompt de comando mostrava o java em três locais. Eu tive que remover o Java de C: \ Windows \ System32, remover a entrada "C: \ ProgramFile \ Oracle \ Java \ javapath" e "C: \ ProgramData \ Oracle \ Java" da variável path, manter apenas a entrada Jdk7 na variável path trabalhou após duas horas de luta.

Sneha Rathod
fonte
0

Vá para configurações avançadas de variáveis ​​de ambiente e edite a variável de caminho. qualquer versão do java que você deseja, basta mover o caminho dessas versões acima de todas as outras variáveis ​​de ambiente de outras versões do java.

aqui na imagem a variável de ambiente java_home é movida para cima do que o ambiente oracle java

Nikita Dharurkar
fonte
-1

Tente o seguinte:

@echo off
DOSKEY WHICH=@for %%E in (%PATHEXT%) do @for %%I in ($*%%E) do @if NOT "%%~$PATH:I"=="" echo %%~$PATH:I
SET "JAVA_HOME=C:\Java\jdk1.6"
SET "PATH=%JAVA_HOME%\bin;%PATH%"
where.exe java
WHICH java
pause
djangofan
fonte
-1

Eu estava enfrentando o mesmo problema. Mais tarde, descobri que o culpado era o Java 8. Antes de instalar o java 8, mas agora não há pasta para o java 8 e meu JAVA_HOME definido como jre7, mas ainda estava enfrentando o problema acima.

solução

Eu apaguei o javapath presente em C: \ ProgramData \ Oracle \ Java . Agora meu sistema está funcionando corretamente. Também resolveu meu problema de inicialização do eclipse .

Sudip7
fonte
-2

Eu tive o mesmo problema. Fazendo isso, resolvi o problema.

No Windows 8 ou 10, você precisa remover "C: \ ProgramFile \ Oracle \ Java \ javapath" do caminho na variável de ambiente.

Isso pode resolver o problema.

Isuru Sandamal
fonte
2
Isso já foi sugerido, há 2 anos
Ramhound 28/01