JAVA_HOME ist nicht korrekt definiert


14

Ich habe Java JDK Hotspot 1.7 installiert. Wenn ich tippe, java -versionbekomme ich:

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

Das ist richtig.

Und ich habe versucht, Maven zu installieren, und zur /etc/environmentDatei hinzugefügt :

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

Wenn ich jetzt mvn tippe, bekomme ich:

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

Ich setze jedoch keine Markierung für JAV_HOME var in die Umgebungsdatei.

Es versucht zu fliehen

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

Weg, Eigentlich sollte es sein

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

Wenn ich befehle

$JAVA_HOME

Ich bekomme:

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

Ich bin sicher, dass der Pfad ( /usr/lib/jvm/jdk1.7.0) korrekt ist.


Können Sie ein ls -al /usr/lib/jvmund bestätigen, dass "jdk1.7.0" das Format für den Verzeichnisnamen ist? Bei der Verwendung von Oracle werden häufig seltsame Ordnernamen verwendet
— Thomas Ward

ls /usr/lib/jvm/java-7und ls "/usr/lib/jvm/java-7"/binergeben, und sollte das gleiche Ergebnis für mich ergeben (die nicht leer ist). Der letzte Teil, Java-7, ist das Ergebnis einer manuellen Änderung - es kann und wird für Sie ein bisschen anders sein. Stellen Sie sicher, dass ein solcher Ordner existiert (jdk1.7.0).
— Benutzer unbekannt

Ich habe 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 nach dem Ausführen dieses ls -al /usr/lib/jvm Befehls
— Kamoliddin

Beachten Sie, dass eine Variable in der Konsole zu sehen, werden Sie eingeben zu erwarten: echo $VARNAME. Wenn Sie dies einfach tun $VARNAME, wird ausgeführt, was in dieser Variablen enthalten ist.
— Alexis Wilke

Antworten:


15

JAVA_HOMEsollte auf den Namen des Verzeichnisses festgelegt wird, enthält das binVerzeichnis , das enthält das Java - Executables (insbesondere javaselbst).

Vorausgesetzt, Sie haben ein /usr/lib/jvm/jdk1.7.0Verzeichnis, enthält es wahrscheinlich ein jreUnterverzeichnis, das das binVerzeichnis javamit den zugehörigen ausführbaren Dateien enthält .

So werden Sie wahrscheinlich werden Einstellung sollte JAVA_HOMEauf /usr/lib/jvm/jdk1.7.0/jrestatt /usr/lib/jvm/jdk1.7.0.


Bei der Installation eines JDK führt nicht nur die JRE in der Regel zu einem JDK-Verzeichnis, das ein bin-Verzeichnis enthält, sondern auch zu einem JRE-Verzeichnis, das selbst ein bin-Verzeichnis enthält. Wurde JAVA_HOMEaber immer auf das übergeordnete Verzeichnis gesetzt, nicht auf das jreVerzeichnis.
— Benutzer unbekannt

Interessant, ich muss es auf jdk no setzen? Ich werde Code in Java schreiben, kompilieren, bereitstellen, etc ..
— Kamoliddin

@Kamoliddin Wenn Maven verwendet, um $JAVA_HOMEzu wissen, wo sich die javacBinärdateien und andere Entwicklungsdateien befinden, müssen Sie sie auf das jdkVerzeichnis einstellen, das das binVerzeichnis enthält, in dem sich diese Binärdateien befinden.
— Eliah Kagan

Danke, ich weiß nicht, es hat nach dem Neustart funktioniert. Ich glaube, ich muss nicht neu starten, damit die Änderungen übernommen werden. Ich habe nichts geändert. Es funktionierte.
— Kamoliddin

Ich bin mir nicht sicher, warum er überhaupt jdk1.7.0 verwendet. Sollte /usr/lib/jvm/javafür beide javaund ausreichen javac. Alternatives kümmert sich darum
— Brian
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.