Existe-t-il une commande linux que je pourrais utiliser pour trouver le répertoire JAVA_HOME
? J’ai essayé d’imprimer les variables d’environnement (“env”) mais je ne trouve pas le répertoire.
echo $JAVA_HOME
imprimera la valeur si elle est définie. Cependant, si vous ne l’avez pas défini manuellement dans vos scripts de démarrage, il n’est probablement pas défini.
Si vous essayez which java
et qu’il ne trouve rien, Java peut ne pas être installé sur votre machine, ou du moins n’est pas sur votre chemin. Selon la dissortingbution Linux dont vous disposez et l’access root ou non, vous pouvez aller sur http://www.java.com pour télécharger la version dont vous avez besoin. Ensuite, vous pouvez définir JAVA_HOME pour qu’il pointe vers ce répertoire. Rappelez-vous qu’il ne s’agit que d’une convention et que vous ne devez pas l’utiliser pour déterminer si Java est installé ou non.
Sous Linux, vous pouvez lancer $(dirname $(dirname $(readlink -f $(which javac))))
Sur Mac, vous pouvez lancer $(dirname $(readlink $(which javac)))/java_home
Je ne suis pas sûr des fenêtres mais j’imagine where javac
vous rapprocherait
Je sais que c’est en retard, mais cette commande recherche le répertoire / usr / pour trouver java pour vous
sudo find /usr/ -name *jdk
Résultats à
/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-1.6.0-openjdk
FYI, si vous êtes sur un Mac, JAVA_HOME est actuellement situé à
/System/Library/Frameworks/JavaVM.framework/Home
Juste une autre solution, celle-ci croise la plate-forme (utilise java
), et vous pointe vers l’emplacement du jre.
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
Affiche tous les parameters actuels de java
et trouve celui appelé java.home
.
Pour afficher la valeur d’une variable d’environnement que vous utilisez:
echo $ VARIABLE
donc dans votre cas sera:
echo $ JAVA_HOME
Si vous ne l’avez pas configuré, vous pouvez append votre fichier .bashrc
:
export JAVA_HOME = $ (readlink -f / usr / bin / java | sed “s: bin / java ::”)
et cela changera dynamicment quand vous mettrez à jour vos paquets.
Si $JAVA_HOME
est défini dans votre environnement …
$ echo $JAVA_HOME $ # I am not lucky...
Vous pouvez le deviner à partir des classes chargées.
$ java -showversion -verbose 2>&1 | head -1 [Opened /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/lib/rt.jar]
Cette méthode garantit que vous trouvez le bon jdk
/ jre
utilisé au cas où il y aurait plusieurs installations.
Ou en utilisant strace
:
$ strace -e open java -showversion 2>&1 | grep -m1 /jre/ open("/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/jre/bin/../lib/amd64/jli/tls/x86_64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
Sur le terminal, tapez:
echo “$ JAVA_HOME”
Si vous n’obtenez rien, votre variable d’environnement JAVA_HOME n’a pas été définie. Vous pouvez essayer d’utiliser “Locate java” pour essayer de localiser votre installation de Java.
Avez-vous défini votre JAVA_HOME
Voici une amélioration, en ne prenant que le répertoire stdout:
java -XshowSettings:properties -version 2>&1 \ | sed '/^[[:space:]]*java\.home/!d;s/^[[:space:]]*java\.home[[:space:]]*=[[:space:]]*//'
http://www.gnu.org/software/sed/manual/html_node/Print-bash-environment.html#Print-bash-environment
Si vous voulez vraiment obtenir des informations sur votre BASH, mettez ce script dans votre fichier .bashrc et regardez-le. Vous pouvez faire défiler et regarder.