Come impostare java_home su Windows 7?


422

Sono andato alle variabili di ambiente in "Sistema" nel pannello di controllo e ho creato due nuove variabili, una per le variabili utente e una per le variabili di sistema. Entrambi sono stati chiamati JAVA_HOME ed entrambi indicano

C: \ Sun \ SDK \ jdk \ bin

Ma per qualche motivo, ottengo ancora l'errore di seguito quando eseguo un 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

Come posso risolvere questo problema?


3
Hai chiuso cmd e riaperto? Inoltre sembra che tu sia puntato sul JRE e non sul JDK. Hai installato JDK?
rabbia

Ho sicuramente installato JDK e si trova in C: \ Sun \ SDK \ jdk \ bin su cui ho impostato java_home.
Derek,

Ho anche riavviato ......... alcune volte da ........
Derek,

Sembra comunque che stia cercando in C: \ Programmi \ Java \ jre6 \ lib \ c Puoi fare l'eco% JAVA_HOME% nel tuo prompt dei comandi e vedere cosa riporta
rabbia

3
La soluzione è: Omit / bin
IceFire

Risposte:


673

Trova la directory di installazione di JDK

Innanzitutto è necessario conoscere il percorso di installazione di Java Development Kit.

Aprire il percorso di installazione predefinito per JDK:

C:\Program Files\Java

Dovrebbe esserci una sottodirectory come:

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

Nota: uno deve solo mettere il percorso per il jdk senza / bin alla fine (come suggerito in molti punti). ad es. C: \ Java \ jdk1.8.0_172 e NOT C: \ Java \ jdk1.8.0_172 \ bin!


Imposta la variabile JAVA_HOME

Una volta che hai il percorso di installazione JDK:

  1. Fare clic con il tasto destro del mouse sull'icona Risorse del computer sul desktop e selezionare Proprietà .
  2. Fai clic sulla scheda Avanzate , quindi fai clic sul pulsante Variabili d'ambiente .
  3. In Variabili di sistema , fai clic su Nuovo.
  4. Immettere il nome della variabile come JAVA_HOME .
  5. Immettere il valore della variabile come percorso di installazione per Java Development Kit.
  6. Clicca OK .
  7. Fai clic su Applica modifiche .

Nota: potrebbe essere necessario riavviare Windows

L'articolo completo è qui, sul mio blog: Impostazione della variabile JAVA_HOME in Windows .


121
Grazie. alla fine mi sono reso conto che uno deve solo mettere il percorso per il jdk senza / bin alla fine (come suggerito in molti posti). ad es. C: \ Java \ jdk1.6.0_31 e NOT C: \ Java \ jdk1.6.0_31 \ bin!
salocinx,

24
Dio non voglia che ci sia stato un programma di installazione che ha fatto questo passaggio per te :) Sono appena passato dalla versione Enterprise alla versione Community ed ero convinto di aver scaricato la cosa sbagliata perché era un clic sulla versione Enterprise: p
John Humphreys - w00te,

6
A volte, le modifiche alla variabile di sistema non hanno effetto fino al riavvio di Windows.
Andy,

11
Un metodo più rapido è
premere

4
/Java/jre*non è la directory JDK, questa è la directory Java Runtime Enviroment. JDK è in una directory separata a meno che tu non voglia fare qualche pazzo hack
ericn il

157

Ciò che ha funzionato per me è stato l'aggiunta della %JAVA_HOME%\binvariabile d'ambiente Path con la JAVA_HOMEvariabile d'ambiente che punta alla jdkcartella.


126

Devi prima installare JDK nel tuo sistema.

Imposta Java Home

JAVA_HOME = C: \ Programmi \ Java \ jdk1.7.0 [Posizione della directory di installazione di JDK]

Una volta che hai il percorso di installazione JDK:

  • Fare clic con il tasto destro sull'icona Risorse del computer su
  • Seleziona Proprietà
  • Fai clic sulla scheda Impostazioni di sistema avanzate sul lato sinistro dello schermo
  • Aadvance Popup è aperto.
  • Fare clic sul pulsante Variabili d'ambiente.

inserisci qui la descrizione dell'immagine

  • In Variabili di sistema, fai clic su Nuovo.
  • Immettere il nome della variabile come JAVA_HOME.
  • Immettere il valore della variabile come percorso di installazione per Java Development Kit.
  • Clicca OK.
  • Fai clic su Applica modifiche.

Impostare il percorso JAVA nella variabile di sistema

PERCORSO = C: \ Programmi \ Java \ jdk1.7.0; [Aggiungi valore con punto e virgola]

controlla qui


14
JAVA_HOME dovrebbe contenere "\ bin"? Altre risposte qui sembrano suggerire che "bin" dovrebbe essere incluso per PATH ma non per JAVA_HOME.
Devuxer

72
JAVA_HOME NON deve contenere \ bin.
Larry Silverman,

5
[PIÙ UNO] Bei fiori!
GingerHead

Ma su Image si entra con \ bin.
NaveenDA,

32

In cmd (temporaneamente per quella finestra cmd):

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

echo %JAVA_HOME%

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

echo %PATH%

2
Vero. Se si utilizza setxallora la JAVA_HOMEsarà ancora impostato dopo aver spegnere il computer. Quindi non è necessario impostarlo di nuovo. Inoltre binnon è necessario.
Tenzin,

Sì, ma se non si desidera installare ufficialmente Java, come ha detto sgrillon, è possibile impostarlo temporaneamente per quell'istanza. Meglio ancora, creare un file batch che è possibile eseguire per aprire una finestra e set di prompt dei comandi JAVA_HOME, PATHe CLASSPATH, allora si può avere un ambiente di “portatile” di Java.
Synetech,

È vero ma "" non sono necessari per impostare l'indirizzo JAVA_HOME
Aboozar Rajabi

1
@Aboozar Rajabi, è necessario "" se ... il percorso contiene un carattere spaziale.
sgrillon,

19

È necessario impostarlo su C:\Sun\SDK\jdk(Supponendo che sia lì che è installato JDK - Non è l'impostazione predefinita) - Non inserire il \ bin C:\Sun\SDK\jdk\bin.

Se l'app viene eseguita solo quando si è effettuato l'accesso come utente corrente, inserirla nelle variabili utente. Se è necessario eseguirla per tutti gli utenti del sistema, inserirla in Variabili di sistema.

Potrebbe anche essere necessario aggiungere anche %JAVA_HOME%\binal percorso (dipende anche dal fatto che lo si esegua solo dall'utente o da tutti gli utenti, incluso il sistema)


17

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

Pannello di controllo> Java, scheda Java, fare clic sul pulsante Visualizza. In Parametri di runtime, inserisci:

-Djava.home=YOUR_PATH_HERE

Oppure, quando si esegue Java, è possibile aggiungere l'opzione della riga di comando al comando:

java -Djava.home=PATH SomeJavaApp

La cosa del pannello di controllo sembra valere solo per la versione commerciale di Java. Non per la versione GPL.
Thomas Weller,


7

Per coloro che sono ancora sconcertati da questo problema (ho provato tutti i suggerimenti di cui sopra) -

Se utilizzi una versione di Windows a 64 bit e hai installato il JDK a 32 bit, oltre a regolare le PATHvariabili, potrebbe essere necessario modificare anche le variabili di registro .

Mi stavo togliendo i capelli, avendo impostato correttamente le mie PATHvariabili - ancora inutilmente - e poi trovando solo voci Java "lasciate libere" nel mio registro, apparentemente un deadend di riparare il Java Runtime Environment "che non funzionava correttamente".

Usando Process Monitorper guardare il programma che stavo cercando di iniziare, al fine di annusare dove stava cercando nel registro Java (Runtime Environment), ho scoperto trionfalmente che sta cercando nella versione a 32 bit delle voci di registro, che si trova in HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment.

All'interno di quella chiave, dovresti trovare le sottochiavi di diverse versioni di Java installate (passate e / o presenti). Fare clic sulla sottochiave dell'ultima versione (la mia sottochiave è attualmente 1.7.0_25, ad esempio). Dopo aver fatto clic su quella sottochiave, vedrai i valori delle stringhe di registro elencati sulla destra e, in particolare, JavaHomee RuntimeLib. È necessario modificare i valori di questi due valori per riflettere rispettivamente sia la cartella corrente sia il file jvm.dll.

Ad esempio, nel mio caso, i valori erano (precedentemente) rispettivamente impostati su C:\Program Files (x86)\Java\jre7e C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllche sono inesistenti sulla mia macchina. Ho dovuto aggiornare questi alla cartella e al file correnti di C:\Program Files (x86)\Java\jdk1.7.0_25\jree C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll.

Ancora una volta, questo dipenderà interamente da quale versione di Java (JDK e / o JRE) hai installato - 32 o 64-bit - e dal tipo di sistema operativo in cui ti trovi - 32 o 64-bit. Basta sapere che si riflettono in diverse posizioni all'interno del registro (come Wow6432Nodeper le applicazioni a 32 bit, nel mio caso con il JDK a 32 bit installato su un computer a 64 bit).

Ora che ho aggiornato quei due valori del registro, il mio programma funziona alla perfezione, senza più singhiozzi o lamentele su un Java Runtime Environment mancante (derivante dal registro).


1
Sono su una macchina Windows 7 a 64 bit e ho entrambi: C: \ Programmi (x86) \ Java \ e C: \ Programmi \ Java \ Ora la mia domanda è quella a cui dovrebbe puntare il mio java_home?
voidMainRitorna il

Interessante; Ho solo la cartella Java sotto la cartella x86.
B. Clay Shannon,

In C: \ Programmi (x86) \ Java \ jdk1.7.0_25 \ jre \ bin Non ho un client di directory, esiste solo in C: \ Programmi (x86) \ Java \ jre7 \ bin. Cosa dovrei fare?
Pavol Havlik,

Su Windows 7, dopo aver cercato la parola chiave "1.8.0_74", ho trovato più registri utilizzando regedit in HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / o ../1.8.0_65 e tutti gli altri installati in precedenza ... Dopo aver eliminato uno per uno il registro dal basso all'ultimo java 1.8.0_112 installato, ora YourKit java profiler (profiler.exe) funziona senza errori: "Errore durante l'avvio di C: \ Programmi \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ".
David,

7

Questa è la soluzione ufficiale per impostare l'ambiente Java da www.java.com - qui .

Esistono soluzioni per Windows 7, Windows Vista, Windows XP, Linux / Solaris e altre shell.


Esempio

Windows 7

  1. Seleziona Computer dal menu Start
  2. Scegli Proprietà di sistema dal menu contestuale
  3. Fai clic su Impostazioni di sistema avanzate -> scheda Avanzate
  4. Fare clic su Variabili d'ambiente, in Variabili di sistema, trovare PERCORSO e fare clic su di esso.
  5. Nelle finestre Modifica, modifica PATH aggiungendo la posizione della classe al valore per PATH. Se non si dispone dell'elemento PATH, è possibile selezionare di aggiungere una nuova variabile e aggiungere PATH come nome e la posizione della classe come valore.
  6. Riapri la finestra del prompt dei comandi ed esegui il tuo codice Java.

1
Le istruzioni ufficiali sono inutili. Forniscono solo istruzioni generiche su come impostare le variabili di ambiente anziché indicare il valore che deve essere impostato. Dicono semplicemente di impostarlo su "la posizione della classe" che è confusa e insignificante.
Synetech,

Queste istruzioni non impostano JAVA_HOME, una variabile completamente separata da PATH richiesta per alcuni programmi.
Jules,

6

Windows 7

  1. Vai a Pannello di controllo \ Tutti gli elementi del pannello di controllo \ Account utente utilizzando Explorer (non Internet Explorer!)

    o

    • fai clic sul pulsante Start

      inizio

    • clicca sulla tua foto

      clickOnPhoto

  2. Cambia le mie variabili d'ambiente

    Cambia le mie variabili d'ambiente

  3. Nuovo...

    nuovo

    (se non disponi di autorizzazioni sufficienti per aggiungerlo nella sezione Variabili di sistema, aggiungilo alla sezione Variabili utente)

  4. Aggiungi JAVA_HOME come nome della variabile e la posizione JDK come valore della variabile> OK

    modifica variabile di sistema ok

Test:

  • aprire una nuova console (cmd)
  • genere set JAVA_HOME
    • uscita prevista: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

6

Dobbiamo fare una distinzione tra le due variabili d'ambiente che sono discusse qui in modo intercambiabile. Uno è la variabile JAVA_HOME . L'altra è la variabile Path . Qualsiasi processo che fa riferimento alla variabile JAVA_HOME sta cercando il percorso di ricerca su JDK, non su JRE. L'uso della variabile JAVA_HOME non è destinato al compilatore Java stesso. Il compilatore è a conoscenza della propria posizione. La variabile è destinata ad altri software per individuare più facilmente il compilatore. Questa variabile viene in genere utilizzata dal software IDE per compilare e creare applicazioni dal codice sorgente Java. Al contrario, l'interprete CMD di Windows e molti altri software di prime e terze parti fanno riferimento alla variabile Path, non alla variabile JAVA_HOME.

Caso d'uso 1: compilazione da CMD

Quindi, ad esempio, se non si utilizza alcun software IDE e si desidera solo essere in grado di compilare dal CMD, indipendentemente dalla directory di lavoro corrente, ciò che si desidera è impostare correttamente la variabile Path. Nel tuo caso, non hai nemmeno bisogno della variabile JAVA_HOME. Poiché CMD utilizza Path, non JAVA_HOME per individuare il compilatore Java.

Caso d'uso 2: compilazione da IDE

Tuttavia, se si sta utilizzando alcuni software IDE, allora si deve guardare la documentazione prima di tutto. Potrebbe essere necessario impostare JAVA_HOME, ma potrebbe anche utilizzare un altro nome di variabile per lo stesso scopo. Lo standard di fatto nel corso degli anni è stato JAVA_HOME, ma potrebbe non essere sempre così.

Caso d'uso 3: compilazione da IDE e CMD

Se oltre al software IDE vuoi anche essere in grado di compilare dal CMD, indipendentemente dalla tua directory di lavoro corrente, allora oltre alla variabile JAVA_HOME potresti anche dover aggiungere il percorso di ricerca JDK alla variabile Path.

JAVA_HOME vs. Path

Se il tuo problema riguarda la compilazione di Java, allora vuoi controllare la variabile JAVA_HOME e Path (dove applicabile). Se il tuo problema riguarda l'esecuzione di applicazioni Java, allora vuoi controllare la tua variabile Path.

La variabile percorso è utilizzata universalmente in tutti i sistemi operativi. Poiché è definito dal sistema e poiché è la variabile predefinita utilizzata per individuare JRE, non si verificano quasi mai problemi con le applicazioni Java. Soprattutto su Windows, dove gli installatori di software di solito impostano tutto per te. Ma se stai installando manualmente, la cosa più sicura da fare è forse saltare del tutto la variabile JAVA_HOME e usare semplicemente la variabile Path per tutto, sia per JDK che per JRE. Qualsiasi versione recente di un software IDE dovrebbe essere in grado di rilevarlo e utilizzarlo.

link simbolici

I collegamenti simbolici possono fornire ancora un altro modo per fare riferimento al percorso di ricerca JDK eseguendo il piggyback di una delle variabili di ambiente esistenti.

Non sono sicuro delle versioni precedenti delle versioni Oracle / Sun JDK / JRE, ma almeno il programma di installazione per jdk1.8.0_74 aggiunge il percorso di ricerca C:\ProgramData\Oracle\Java\javapathalla variabile Path e lo inserisce all'inizio del valore della stringa. Questa directory contiene collegamenti simbolici a java.exe, javaw.exe e javaws.exe nella directory JRE.

Quindi almeno con Java 8 JDK e presumibilmente Java 8 JRE autonomo, non è necessario eseguire alcuna configurazione di variabile d'ambiente per JRE. Finché si utilizza il pacchetto di installazione per configurarlo. Tuttavia, potrebbero esserci delle differenze nell'installazione di Windows. Si noti che Oracle JRE viene fornito in bundle con JDK.

Se ti accorgi mai che la tua configurazione JDK Java sta usando la versione sbagliata del compilatore, o sembra funzionare magicamente, senza essere esplicitamente definito così (senza lanciare l'incantesimo), allora potresti avere un link simbolico da qualche parte nelle variabili di ambiente . Quindi potresti voler verificare il collegamento simbolico.


5

vai a Mycomputer (questo PC) -> tasto destro del mouse -> seleziona proprietà -> Impostazioni di sistema avanzate -> variabili di ambiente-> nelle variabili di sistema fai clic sul pulsante " Nuovo " e scrivi JAVA_HOME nel nome della variabile e nel percorso C: \ Programmi \ Java \ jdk1. 8.0_131 dove jdk è presente nel valore variabile-> fai clic su ok.

chiudere e riaprire il prompt dei comandi dopo aver impostato JAVA_HOME. A volte le modifiche non si riflettono nel cmd aperto prima di impostare JAVA_HOME.

puoi anche impostare JAVA_HOME tramite il terminale stesso: SET JAVA_HOME = "C: \ Programmi (x86) \ Java \ jdk1.8.0_131"


4

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

Utilizzare la funzione di ricerca per assicurarsi che sia elencata l'ultima installazione Java; quindi assicurati che sia quello che viene controllato. Questo dovrebbe essere un JDK non un JRE.


Queste istruzioni non impostano JAVA_HOME, che non è correlato a eclipse.
Jules,

4

Mentre aggiungi la tua directory Java alla tua PATHvariabile, potresti volerla rimettere all'inizio. Ho avuto il problema, che mettere la directory Java alla fine PATHnon avrebbe funzionato. Dopo aver verificato, ho trovato java.exenella mia Windows\System32directory e sembra che vince il primo, quando ci sono diversi file con lo stesso nome nel tuo PATH...


Quando / se si installa Java con il programma di installazione, sostituirà le copie di java.exee javaw.exenelle cartelle di sistema con le copie da JRE / JDK, quindi dovrebbe funzionare ancora. Se lo installi manualmente (basta decomprimere gli archivi), dovrai davvero fare attenzione a quale copia viene eseguita.
Synetech,

Queste istruzioni non impostano JAVA_HOME, una variabile completamente separata da PATH richiesta per alcuni programmi.
Jules,

3

Esegui Eclipse come amministratore.

Ciò ha risolto il mio problema. Sto ancora cercando la logica che sta dietro.


1
Non posso dire di capirlo esattamente, ma forse eclipse in realtà sta solo dando il messaggio di errore sbagliato qui. Quando lo esegui come non amministratore, non può eliminare i file .jar o qualcosa del genere e quindi segnala erroneamente che non ha trovato javac. Comunque, questa soluzione ha funzionato anche per me.
Jess,

se si esegue Eclipse in Windows Server 2012 R2 come nel mio caso, eseguire eclipse come amministratore funziona per me. Ricordare inoltre di impostare java_home sulla cartella dei file di programma e non sulla cartella dei file di programma (86). Spero che questo aiuti qualcuno.
ombiro,

2

se non hai riavviato il tuo computer dopo aver installato jdk, riavvia il computer.

se vuoi creare un java portatile e impostare il percorso prima di utilizzare java, crea un file batch che ho spiegato di seguito.

se si desidera eseguire questo file batch all'avvio del computer, inserire il collegamento al file batch nella cartella di avvio. Nella cartella di avvio di Windows 7 è "C: \ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Menu Start \ Programmi \ Avvio"

crea un file batch come questo:

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 pathsono variabili. puoi fare qualsiasi variabile come desideri. per esempio set amir=good_boye puoi vedere Amir di %amir%o puoi vedere java_home di%java_home%


0

Dopo ore di lavoro sulla maggior parte delle soluzioni qui, il problema è stato risolto per me semplicemente installando JDK a 32 bit.


1
Il che va bene se è quello che vuoi, ma alcune persone preferiscono non installare effettivamente Java e semplicemente impostare manualmente un ambiente "portatile", nel qual caso, devi sapere quali variabili di ambiente devono essere impostate.
Synetech,

0

Puoi cercare nella cartella Windows / System32 i seguenti file: - java.exe - javaw.exe - javaws.exe

Perché, la variabile path include questi file, puoi avere mal di testa cercando di capire perché java -version o javac -version continuano a puntare al vecchio JAVA_HOME: rinominare quei file, eliminare l'estensione con un carattere di sottolineatura, ad esempio. Quindi, dovrai solo creare la variabile JAVA_HOME, aggiungerla alla variabile path (ad es.% JAVA_HOME%) e aggiungere la particella "\ bin". In questo modo è necessario modificare solo la variabile JAVA_HOME che punta a JRE o JDK diversi e disporre di più installazioni di java semplicemente impostando JAVA_HOME.

Ciò significa anche che è meglio installare Java manualmente, senza un programma di installazione, in modo da poter giocare con esso.

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.