105 votes

Comment déterminer JAVA_HOME sur Debian/Ubuntu ?

Sur Ubuntu, il est possible d'avoir plusieurs JVM en même temps. La JVM par défaut est sélectionnée avec update-alternatives . Mais cela ne fixe pas le JAVA_HOME en raison d'une variable d'environnement politique Debian .

J'écris un lanceur script (bash), qui démarre une application java. Cette application java a besoin du JAVA_HOME variable d'environnement. Alors comment obtenir le chemin de la JVM qui est actuellement sélectionnée par update-alternatives ?

2voto

djangofan Points 4152

Dans le prolongement de la réponse de Danadams :

Tout d'abord, installez le 2ème JRE Java en tant que 3ème option 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 énumérer :

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 ceci :

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 toujours besoin de définir les liens pour javaw et javac, etc., chacun d'eux étant fait séparément.

1voto

aardbol Points 1453

Il y a quelque temps, j'ai créé un tutoriel sur le forum Ubuntu sur la façon d'installer la dernière version de JRE/JDK à partir du site Web de Java. Il explique également comment l'activer au niveau du système, en ajoutant l'emplacement de JRE/JDK à la variable PATH. Si vous le souhaitez, vous pouvez également ajouter JAVA_HOME au script, mentionné à la fin du sujet.

Regardez ça : http://ubuntuforums.org/showthread.php?t=1437100

1voto

Freddy Points 1949

Si java est configuré avec update-alternatives ou a été ajouté manuellement à votre variable PATH, alors aucun code en dur n'est nécessaire. "/usr/bin/java" est nécessaire. J'utilise cette solution dans mon .bashrc :

export JAVA_HOME=$(readlink -m $(which java)/../..)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X