Das Verzeichnis java_home ist nicht korrekt, obwohl es in meiner Umgebungsdatei vorhanden ist


7

Ich verwende Java JDK mit Maven und habe die folgende / etc / Umgebung

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

# Maven Settings
export JAVA_HOME=/usr/local/jdk1.6.25/
export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

Die /usr/local/jdk1.6.25 existiert zwar, aber wenn ich mvn -version ausführe, bekomme ich ...

Warning: JAVA_HOME environment variable is not set.
Apache Maven 3.0.3 (r1075438; 2011-02-28 17:31:09+0000)
Maven home: /usr/local/apache-maven/apache-maven-3.0.3
Java version: 1.6.0_23, vendor: Sun Microsystems Inc.
Java home: /usr/lib/jvm/java-6-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.0.0-14-generic", arch: "i386", family: "unix"

Weiß jemand, warum dies nicht der Meinung ist, dass mein Verzeichnis java_home korrekt ist, obwohl es in meiner Umgebungsdatei vorhanden ist?


/etc/environmentWenn Sie die Datei missbrauchen , sollte sie im conf-Format geschrieben sein (siehe die Seite EnvironmentVariables auf help.ubuntu.com ), da keine Shell-Erweiterung verfügbar ist - Ihre Variablen werden niemals ausgewertet.
Eliran Malka

Antworten:


9

Ein paar Ideen ... Erstens, nur um die Lesbarkeit zu verbessern, ist dies Ihr PFAD

PATH = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games

Dies sind Ihre Umgebungsvariablen:

export JAVA_HOME = / usr / local / jdk1.6.25 /
export M2_HOME = / usr / local / apache-maven / apache-maven-3.0.3
export M2 = $ M2_HOME / bin
export PATH = $ M2: $ PATH

Beachten Sie, dass "Java" (das Programm) $JAVA_HOME/binnicht vorhanden ist $JAVA_HOME. Das wird ein wenig Verwirrung stiften, wenn im PATH der Shell ein anderes 'Java' gefunden wird. Zum Beispiel...

$ Typ Java
Java ist / usr / bin / java

Ändern Sie einfach Ihren PFAD:

$ export PATH = $ JAVA_HOME / bin: $ PATH
$ Typ Java
... sollte $ JAVA_HOME / bin / java sein ...

Aber ich denke nicht, dass das das Problem ist. Aus dem MVN Shell Script Launcher,

if [-z "$ JAVA_HOME"]; dann
  echo "Warnung: Die Umgebungsvariable JAVA_HOME ist nicht festgelegt."
fi

Dies würde bedeuten, dass die Variable wirklich nicht gesetzt ist - nicht nur auf einen falschen Wert gesetzt. Vielleicht ist dies der wichtigste Hinweis:

[mein java_home ...] obwohl es in meiner Umgebungsdatei existiert?

Vielleicht kann du / geändert JAVA_HOMEzu .bashrcoder .profile, und dann in der gleichen Shell versuchte zu laufen mvn -v?? In diesem Fall werden diese Werte erst erfasst, wenn Sie die Datei als Quelle (z. B. . ~/.bashrc) oder eine neue Anmeldeshell ( bash -l) erstellen , damit diese Umgebungsvariablen festgelegt (oder zurückgesetzt) ​​werden.

(Auch ... es ist nur eine Ansichtssache, aber in Ihrem PATHFall würde ich den Standard /usr/bin(und /usr/sbinund /bin) vor einem /usr/local/binoder /opt/bin(usw.) belassen, nur um zu vermeiden, dass Rouge-Programme vor Ort Vorrang vor den Standardprogrammen haben ... die Verwendung von so etwas alternativeswäre vorzuziehen, um die Standardversionen von Standardanwendungen zu überschreiben.)

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.