Ich frage mich, ob Ubuntu selbst eine systemweite Möglichkeit bietet, den aktuellen Stand zu finden, JAVA_HOME
oder ob es den richtigen Ort für die Einstellung gibt JAVA_HOME
.
Mac OS X macht dies gut, denn der /usr/libexec/java_home
Befehl gibt den aktuellen zurück JAVA_HOME
. Aber für Ubuntu sagten mir die Materialien, die ich gefunden hatte, immer, ich solle den $JAVA_PATH
Hinweis auf einen statischen Pfad setzen, der in gespeichert ist ~/.bash_profile
.
Ich denke jedoch, dass dieser Ansatz mehrere Nachteile hat:
- Sobald Java aktualisiert wurde, ändert sich die Mini-Versionsnummer, wodurch der statische Pfad nicht mehr verfügbar ist.
- Nachdem die JRE in meinem System zu ändern mit
update-alternatives
, muss ich ändern$JAVA_HOME
in.bash_profile
. Diese zusätzliche Arbeit ist ärgerlich. - Einige
$JAVA_HOME
erforderliche Programme sind überhaupt nicht bekannt.bash_profile
. Ich muss$JAVA_HOME
in ihrem Startskript festlegen , daher$JAVA_HOME
scheint mir eine standardmäßige und einfache Möglichkeit, sie zu erhalten , von entscheidender Bedeutung zu sein.
Jeder Rat ist willkommen. Vielen Dank.
export JAVA_HOME=$(dirname $(dirname $(readlink -e $(which javac))))
Sie können Umgebungsvariablen festlegen
/etc/environment
, die von PAM eingerichtet werden. Es sollte auch Symlinks geben,/usr/lib/jvm
die sich bei kleineren Releases nicht ändern.quelle
Legen Sie das Pfadsystemprofil fest
Bearbeiten Sie die Systempfaddatei / etc / profile
Fügen Sie am Ende die folgenden Zeilen hinzu
Für http://javaandme.com/ finden Sie eine vollständige Installationsanleitung.
quelle
Wenn Sie sicher sind, dass der Befehl 'java' aufgerufen werden kann, funktioniert das nicht für Sie?
quelle
$JAVA_HOME
systemweit zu setzen, nicht nur in der aktuellen Shell.Die akzeptierte Lösung von user13742 geht davon aus, dass auf dem Server definitiv Java installiert ist. Wenn Sie dies einem zentralisierten Skript für viele Server hinzufügen, werden einige Fehler angezeigt:
Um dies zu vermeiden und JAVA_HOME nur festzulegen, wenn der Server über eine Java-Umgebung verfügt, ist eine geringfügige Verbesserung:
Ich habe auch die Änderung von SimonB übernommen, um
which
herauszufinden, wo sich die Installation befindet.quelle
/etc/environment
?