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.