Perché java -version restituisce una versione diversa da quella definita in JAVA_HOME?


18

My JAVA_HOME è impostato su C:\bea\jdk150_10\bin(Java 1.5). Tuttavia, quando corro java -versionottengo quanto segue:

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)

Come posso usare la versione 1.5?

Risposte:



14

Correre

where java

al prompt dei comandi.

Sul mio sistema, ha stampato qualcosa di piuttosto inaspettato:

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

Verifica che ci sia davvero un Java lì:

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)

Quindi una soluzione è assicurarsi che il tuo Java preferito sia nel PERCORSO prima C:\Windows\System32.

Ho anche provato a cercare nel pannello di controllo Java per vedere se gestisce la versione C:\Windows\System32, ma ho potuto solo visualizzare le impostazioni, non modificarle. Forse funziona per te?


8

Modifica la PATHvariabile, no JAVA_HOME.

Consultare la documentazione Java sull'impostazione o la modifica della variabile PATH .

  1. Start -> Pannello di controllo -> Sistema -> Avanzate

  2. Fare clic su Variabili d'ambiente, in Variabili di sistema, trovare PATHe fare clic su di esso.

  3. Nelle finestre Modifica, modifica PATHaggiungendo la posizione della classe al valore per PATH. Se non si dispone dell'elemento PATH, è possibile selezionare di aggiungere una nuova variabile e aggiungere PATHcome nome e la posizione della classe come valore.

  4. Chiudi la finestra.

  5. Riapri la finestra del prompt dei comandi ed esegui il tuo codice Java.


Non vedo alcun riferimento a jdk 6 sulla variabile PATH. Solo Java 5 X)
Jeune

È un esempio, la procedura è sempre la stessa ...
John T

4

Non tutte le applicazioni utilizzano JAVA_HOMEper ottenere la versione JDK. Come detto prima, alcuni di loro usano il %SystemRoot%\System32\java.exe. Puoi fare %SystemRoot%\java.exe -versionper vedere qual è quella versione.

Quello che devo aggiungere alle altre risposte è che se costruisci con Maven, M2_HOME\bindeve anche essere prima che %SystemRoot%Maven utilizzi la JAVA_HOMEversione corretta .


1

JAVA_HOME non dovrebbe puntare al cestino!

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

Assicurati anche che il percorso per JAVA_HOME sia corretto! Se c'è un refuso e C: \ Windows \ System32 \ è nel tuo percorso, allora quel java.exe verrà eseguito invece di quello che hai specificato.


0

Per me alla vittoria 10, javac -version ha mostrato java7 e java -version ha mostrato java8. Facendo "dove java" al prompt dei comandi ha mostrato java in tre posizioni. Ho dovuto rimuovere Java da C: \ Windows \ System32, rimuovere la voce di "C: \ ProgramFile \ Oracle \ Java \ javapath" e "C: \ ProgramData \ Oracle \ Java" dalla variabile di percorso, mantenere solo la voce Jdk7 nella variabile di percorso ha lavorato dopo due ore di lotta.


0

Vai alle impostazioni avanzate delle variabili di ambiente e modifica la variabile di percorso. qualunque sia la versione di Java che desideri, sposta semplicemente il percorso della versione sopra tutte le altre variabili di ambiente di altre versioni di Java.

qui nell'immagine la variabile d'ambiente java_home è spostata in alto rispetto all'oracolo java environment


-1

Prova questo:

@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

-1

Stavo affrontando lo stesso problema. In seguito ho scoperto che il colpevole era Java 8. Prima ho installato java 8 ma ora non esiste alcuna cartella per java 8 e il mio JAVA_HOME impostato su jre7, ma mi trovavo ancora di fronte al problema.

soluzione

Ho eliminato javapath presente in C: \ ProgramData \ Oracle \ Java . Ora il mio sistema funziona correttamente. Ha anche risolto il mio problema di avvio di eclissi .


-2

Ho avuto lo stesso problema. In questo modo ho risolto il problema.

Su Windows 8 o 10, è necessario rimuovere "C: \ ProgramFile \ Oracle \ Java \ javapath" dal percorso nella variabile di ambiente.

Questo potrebbe risolvere il problema.


2
Questo è già stato suggerito, 2 anni fa
Ramhound,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.