JAVA_HOME non è definito correttamente


14

Ho installato l'hotspot java jdk 1.7. Quando scrivo java -versionricevo:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

Questo è corretto.

E ho provato a installare Maven e ho aggiunto al /etc/environmentfile:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

Ora quando scrivo mvn ricevo:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

Tuttavia non inserisco il segno "per JAV_HOME var nel file di ambiente.

Sta cercando di scappare

”/usr/lib/jvm/jdk1.7.0”/bin/java

percorso, in realtà dovrebbe essere

/usr/lib/jvm/jdk1.7.0/bin/java

Quando comando

$JAVA_HOME

Ricevo:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

Sono sicuro che il percorso ( /usr/lib/jvm/jdk1.7.0) sia corretto.


Puoi fare un ls -al /usr/lib/jvme confermare che 'jdk1.7.0' è il formato per il nome della directory? Quando usano Oracle, tendono a usare strani nomi di cartelle
Thomas Ward

ls /usr/lib/jvm/java-7e ls "/usr/lib/jvm/java-7"/bincedere e dovrebbe dare lo stesso risultato per me (che non è vuoto). L'ultima parte, java-7, è il risultato di una modifica manuale: può e sarà leggermente diversa per te. Verificare che esista una tale cartella (jdk1.7.0).
utente sconosciuto

Ho ricevuto total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 questo ls -al /usr/lib/jvm comando
Kamoliddin,

Si noti che per vedere una variabile nella console, ci si aspetta di digitare: echo $VARNAME. Se lo fai $VARNAME, eseguirà ciò che è in quella variabile.
Alexis Wilke,

Risposte:


15

JAVA_HOMEdovrebbe essere impostato sul nome della directory che contiene la bindirectory che contiene gli eseguibili Java (in particolare, javase stessa).

Supponendo che tu abbia una /usr/lib/jvm/jdk1.7.0directory, probabilmente contiene una jresottodirectory che contiene la bindirectory che contiene javae gli eseguibili correlati.

Quindi, si dovrebbe probabilmente essere impostando JAVA_HOMEa /usr/lib/jvm/jdk1.7.0/jrepiuttosto che /usr/lib/jvm/jdk1.7.0.


L'installazione di un JDK, non solo il JRE di solito porta a una directory JDK contenente una directory bin, così come una directory JRE, che a sua volta conteneva una directory bin. Ma JAVA_HOMEera sempre impostato sulla directory principale, non sulla jredirectory principale.
utente sconosciuto

Interessante, devo impostarlo su jdk no? Ho intenzione di scrivere codice in Java, compilare, distribuire, ecc.
Kamoliddin

@Kamoliddin Se Maven sta usando $JAVA_HOMEper sapere dove sono javace altri binari di sviluppo, allora sì, dovrai impostarlo sulla jdkdir contenente la bindir che contiene quei binari.
Eliah Kagan,

Grazie, non lo so, ha funzionato dopo il riavvio, penso che non sia necessario riavviare per applicare le modifiche. Non ho cambiato nulla. Ha funzionato.
Kamoliddin

Non sono sicuro del perché usi jdk1.7.0. /usr/lib/jvm/javaDovrebbe essere sufficiente per entrambi javae javac. Le alternative si occupano di questo
Brian,
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.