Je me demande si Ubuntu lui-même fournit un moyen à l'échelle du système de trouver le courant JAVA_HOME
ou s'il y a un bon endroit pour le réglage JAVA_HOME
.
Mac OS X s'en sort bien, car la /usr/libexec/java_home
commande renvoie le courant JAVA_HOME
. Mais pour Ubuntu, les documents que j'ai trouvés m'ont toujours dit de définir le $JAVA_PATH
pointage sur un chemin statique, qui est stocké dans ~/.bash_profile
.
Je pense cependant que cette approche présente plusieurs inconvénients:
- Une fois Java mis à jour, le mini numéro de version changera, ce qui rendra le chemin statique plus disponible.
- Après avoir changé le JRE utilisé dans mon système avec
update-alternatives
, je dois modifier$JAVA_HOME
en.bash_profile
. Ce travail supplémentaire est ennuyeux. - Certains
$JAVA_HOME
programmes obligatoires ne sont pas du.bash_profile
tout au courant . Je dois définir$JAVA_HOME
leur script de démarrage, donc un moyen standard et facile à obtenir me$JAVA_HOME
semble essentiel.
Eh bien, tout conseil est le bienvenu. Merci.
export JAVA_HOME=$(dirname $(dirname $(readlink -e $(which javac))))
Vous pouvez définir des variables d'environnement dans
/etc/environment
, qui sont configurées par PAM. Il devrait également y avoir des liens symboliques/usr/lib/jvm
qui ne changent pas avec les versions mineures.la source
Définir le profil du système de chemin
Modifiez le fichier de chemin d'accès système / etc / profile
Ajouter les lignes suivantes à la fin
Pour http://javaandme.com/ pour le guide d'installation complet.
la source
Si vous êtes sûr que la commande «java» peut être appelée, cela ne fonctionnerait-il pas pour vous?
la source
$JAVA_HOME
système, pas seulement dans le shell actuel.La solution acceptée byuser13742 suppose que Java est définitivement installé sur le serveur. Dans le cas où vous ajoutez ceci à un script centralisé pour de nombreux serveurs, cela donnera des erreurs comme:
Pour éviter cela et ne définir JAVA_HOME que si le serveur dispose d'un environnement Java, une légère amélioration est:
J'ai également intégré le changement de SimonB à utiliser
which
pour trouver où se trouve l'installation.la source
/etc/environment
?