Existe-t-il une commande linux que je pourrais utiliser pour découvrir Java_HOME
répertoire? J'ai essayé d'imprimer les variables d'environnement ("env") mais je ne trouve pas le répertoire.
echo $Java_HOME
affichera la valeur si elle est définie. Toutefois, si vous ne l'avez pas défini manuellement dans vos scripts de démarrage, il ne l'est probablement pas.
Si tu essayes which Java
et il ne trouve rien, Java peut ne pas être installé sur votre ordinateur, ou du moins ne se trouve pas sur votre chemin. Selon votre distribution Linux et le fait que vous avoir un accès root, vous pouvez aller à http://www.Java.com pour télécharger la version dont vous avez besoin, puis vous pouvez configurer Java_HOME pour qu'il pointe vers ce répertoire. Rappelez-vous qu'il s'agit simplement d'un convention et ne doit pas être utilisé pour déterminer si Java est installé ou non.
Sous Linux, vous pouvez exécuter $(dirname $(dirname $(readlink -f $(which javac))))
Sur Mac, vous pouvez exécuter $(dirname $(readlink $(which javac)))/Java_home
Je ne suis pas sûr de Windows mais j'imagine where javac
vous rapprocherait
Je sais que c'est tard, mais cette commande cherche dans 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
Pour votre information, si vous êtes sur un Mac, Java_HOME se trouve actuellement à l'adresse
/System/Library/Frameworks/JavaVM.framework/Home
Juste une autre solution, celle-ci est multi-plateforme (utilise Java
) et vous indique l’emplacement du jre.
Java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'Java.home'
Affiche tous les paramètres actuels de Java
et trouve celui qui s'appelle Java.home
.
Pour Windows, vous pouvez utiliser findstr au lieu de grep.
Java -XshowSettings:properties -version 2>&1 | findstr "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 ajouter dans votre .bashrc
fichier:
export Java_HOME = $ (readlink -f/usr/bin/Java | sed "s: bin/Java ::")
et cela changera dynamiquement lorsque 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 qui sont 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 vous permet de trouver 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 "localiser Java" pour essayer de découvrir où se trouve votre installation de Java).
Avez-vous défini votre Java_HOME
Voici une amélioration, en récupérant uniquement le répertoire sur stdout:
Java -XshowSettings:properties -version 2>&1 \
| sed '/^[[:space:]]*Java\.home/!d;s/^[[:space:]]*Java\.home[[:space:]]*=[[:space:]]*//'
(dirname $(dirname $(readlink -e $(which Java))))