Sur Ubuntu, il est possible d'avoir plusieurs JVM en même temps. Celui par défaut est sélectionné avec update-alternatives
. Mais cela ne définit pas le Java_HOME
variable d'environnement, due à une politique debian .
J'écris un script de lancement (bash), qui démarre une application Java. Cette application Java nécessite le Java_HOME
variable d'environnement. Alors, comment obtenir le chemin de la JVM qui est actuellement sélectionnée par update-alternatives
?
Pour le JRE, quelque chose comme ça devrait faire l'affaire:
Java_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
la solution de danadam peut facilement être adoptée pour récupérer le chemin JDK (c'est-à-dire pas JRE) comme requis:
Java_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export Java_HOME=$(dirname $(dirname $(readlink -f /usr/bin/Java)))
Dans .bashrc
était pratique pour moi.
Donc, vous dites que cette commande ne fait rien pour vous?
Sudo update-alternatives --config Java
J'ai installé Java avec
Sudo apt-get install openjdk-7-jre-headless
puis pour trouver l'emplacement
ls -al /etc/alternatives/Java
Comme extension de danadams, répondez:
Tout d'abord, installez le 2e Java JRE comme 3e Java, avec une priorité de "3":
Sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/Java/jre/bin/Java 3
Ensuite, vous pouvez les lister:
update-alternatives --list Java
Vous pouvez définir l'alternative à la main, en utilisant ceci:
Sudo alternatives --config Java /opt/IBM/Java/jre/bin/Java
Ensuite, votre script peut le définir à la volée, comme suit:
Sudo alternatives --set Java /opt/IBM/Java/jre/bin/Java
JAVA_HOME=$(readlink -f /usr/bin/Java | sed "s:bin/Java::")
Cela illustre mieux ce que fait la commande "sed". Bien que vous ayez encore besoin de définir les liens pour javaw et javac, etc., chacun est fait séparément.
Si Java est configuré avec update-alternatives
Ou a été ajouté à votre variable PATH manuellement, aucun "/usr/bin/Java"
Codé en dur n'est nécessaire. J'utilise cette solution dans mon .bashrc:
export Java_HOME=$(readlink -m $(which Java)/../..)
Il y a quelque temps, j'ai créé un tutoriel sur le forum Ubuntu sur la façon d'installer le dernier JRE/JDK à partir du site Web Java. Il explique également comment l'activer à l'échelle du système, en ajoutant le JRE/Emplacement JDK dans la variable PATH. Si vous le souhaitez, vous pouvez également ajouter Java_HOME au script, mentionné à la fin de la rubrique.
Découvrez-le: http://ubuntuforums.org/showthread.php?t=14371