Unter Ubuntu ist es möglich, mehrere JVMs gleichzeitig zu haben. Die Standardeinstellung wird mit ausgewählt update-alternatives
. Die JAVA_HOME
Umgebungsvariable wird jedoch aufgrund einer Debian-Richtlinie nicht festgelegt .
Ich schreibe ein Launcher-Skript (Bash), das eine Java-Anwendung startet. Diese Java-Anwendung benötigt die JAVA_HOME
Umgebungsvariable. Wie erhält man den Pfad der JVM, die aktuell von ausgewählt ist update-alternatives
?
echo $(readlink -f /usr/bin/java | sed "s:bin/java::")
, war die Ausgabe/usr/lib/jvm/java-7-oracle/jre/
und nicht/usr/lib/jvm/java-7-oracle/
Die Lösung von danadam kann einfach übernommen werden, um den JDK-Pfad (dh nicht JRE) nach Bedarf abzurufen:
quelle
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))
Es
.bashrc
war praktisch für mich.quelle
Sie sagen also, dass dieser Befehl nichts für Sie tut?
quelle
Ich habe Java mit installiert
und dann den Ort zu finden
quelle
Als Erweiterung von Danadams antworten:
Installieren Sie zunächst die 2. Java-JRE als 3. Java-Option mit der Priorität "3":
Dann können Sie sie auflisten:
Sie können die Alternative manuell festlegen, indem Sie Folgendes ausführen:
Dann kann Ihr Skript es im laufenden Betrieb so einstellen:
Dies veranschaulicht besser, was der Befehl "sed" tut. Obwohl Sie die Links für javaw und javac usw. immer noch festlegen müssen, wird jeder Vorgang separat ausgeführt.
quelle
Vor einiger Zeit habe ich im Ubuntu-Forum ein Tutorial zum Installieren des neuesten JRE / JDK von der Java-Website erstellt. Außerdem erfahren Sie, wie Sie es systemweit aktivieren, indem Sie der PATH-Variablen den JRE / JDK-Speicherort hinzufügen. Wenn Sie möchten, können Sie auch JAVA_HOME zum Skript hinzufügen, das am Ende des Themas erwähnt wird.
Probieren Sie es aus: http://ubuntuforums.org/showthread.php?t=1437100
quelle
Wenn Java mit
update-alternatives
Ihrer PATH-Variablen konfiguriert ist oder manuell hinzugefügt wurde, ist keine Hardcodierung"/usr/bin/java"
erforderlich. Ich verwende diese Lösung in meinem .bashrc:export JAVA_HOME=$(readlink -m $(which java)/../..)
quelle