La détermination du chemin correct pour JAVA_HOME
est un peu complexe sur un système Ubuntucar il utilise des alternatives. Sur ma machine, voici comment les alternatives créent au moins deux niveaux d'indirection avant d'arriver au java ou au javac.Quel est le chemin correct pour JAVA_HOME sur un système Linux qui utilise des alternatives?
usr/bin/javac -> /etc/alternatives/
/etc/alternatives/java -> /usr/lib/jvm/jdk1.7/bin/javac
Si je mets JAVA_HOME
-/usr/lib/jvm/jdk1.7
, alors il est possible que mon java système pourrait devenir incompatible avec la java pointée par JAVA_HOME
, si je mets à jour des alternatives à utiliser une autre java.
Ma question est, quelle est la valeur correcte pour JAVA_HOME
sur un système utilisant des alternatives. Je suis enclin à penser que JAVA_HOME
doit être réglé sur /usr
De cette façon TOMCAT ou tout autre logiciel qui l'utilise, ajoutera « bin » à JAVA_HOME
et trouver tous les executables dont il a besoin.
Est-ce la valeur correcte pour JAVA_HOME
sur les systèmes utilisant des alternatives. Est-ce que la plupart des logiciels utilisent JAVA_HOME
uniquement pour localiser les exécutables, ou utilisent-ils la valeur pour localiser d'autres artefacts (tels que le fil de politique de sécurité, etc.) qui sont livrés avec le JDK? Si le premier est vrai, alors je pense que nous pouvons utiliser /usr
pour JAVA_HOME
, mais si ce dernier est vrai, alors je pense que la seule façon d'utiliser correctement JAVA_HOME
est de sacrifier la fonctionnalité des alternatives.
Je viens de regarder mon système CentOS 5.5: 1) Je n'ai * pas * $ JAVA_HOME défini n'importe où dans mon environnement, 2) /etc/tomcat5/tomcat5.conf a cette ligne : 'JAVA_HOME ="/usr/lib/jvm/java "', 3)/usr/lib/jvm/java est un lien symbolique: 'java ->/etc/alternatives/java_sdk', 4)/etc/alternatives/java_sdk est également un lien symbolique: 'java_sdk ->/usr/lib/jvm/java-1.4.2-gcj'. – paulsm4
Oui, j'ai 'default-java' sur Ubuntu au lieu de 'java' dans/usr/lib/jvm Donc, je suppose que l'astuce est de ne pas s'inquiéter des alternatives car il y a une couche supplémentaire entre les alternatives et Java. – Parag