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 ?

149voto

Donal Fellows Points 101

Pour le JRE, quelque chose comme ceci devrait faire l'affaire :

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

52voto

rsaddey Points 511

La solution de danadam peut facilement être adoptée pour récupérer le chemin du JDK (c'est-à-dire pas le JRE) comme requis :

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • Recherche le compilateur Java javac (au lieu de java) inclus dans le JDK (mais pas dans le JRE).
  • N'a pas de fin / (enlevé par sed s:/bin... au lieu de s:bin...)

15voto

David Points 151

export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

Sur .bashrc était pratique pour moi.

11voto

djangofan Points 4152

Donc, vous dites que cette commande ne fait rien pour vous ?

sudo update-alternatives --config java

3voto

prule Points 141

J'ai installé java avec

sudo apt-get install openjdk-7-jre-headless

et ensuite pour trouver l'emplacement

ls -al /etc/alternatives/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