Différence entre java.accueil et JAVA ACCUEIL
Dans mon code java, j'ai cette ligne System.getProperty("java.home")
. Dans certains environnements, cela renvoie la même valeur que ce qui a été défini JAVA_HOME
comme variable d'environnement.
Mais dans certains environnements, System.getProperty("java.home")
renvoie une valeur complètement différente de JAVA_HOME
.
Donc ma question est quelle est la différence entre java.home
et JAVA_HOME
du point de vue java?
Ce que je sais de mes recherches est JAVA_HOME
est le chemin d'installation jdk, java.home
est le chemin d'installation jre, mais alors pourquoi ne peut-il pas correspondre à jre peut faire partie de l'installation de jdk.
2 answers
Comme vous l'avez indiqué, JAVA_HOME pointe vers le chemin d'installation JDK donné par la variable d'environnement(%JAVA_HOME%).
, Mais java.home pointe vers le chemin d'installation JRE, maintenant il renvoie le JRE qui a été utilisé pour exécuter l'application, n'oubliez pas que vous pouvez avoir plusieurs versions de JRE et JDK sur le même serveur/ordinateur
Et vous pouvez exécuter une application spécifiant quel jre ou jdk vous souhaitez utiliser.
Donc, par exemple, si vous avoir sur votre chemin d'environnement:
%JAVA_HOME% = C:\Program Files\Java\jdk1.6.0_24
Mais si vous avez exécuté l'application en utilisant un jre spécifique:
"C:\Program Files (x86)\Java\jre1.8.0_73\bin\java" -jar TheJavaFile.jar
Dans l'application à l'exécution, vous obtiendrez sur java.accueil une version différente de JAVA_HOME
Cela peut expliquer pourquoi, dans certains cas, vous obtenez des versions différentes pour la variable et la propriété système.
De plus, veuillez noter que les chemins peuvent être très différents, car JRE est un produit différent de JDK, alors ils sont installés à des endroits différents, parce qu'ils sont indépendants
Maintenant, en ce qui concerne la différence entre un JDK et un JRE, ce diagramme l'explique assez clairement:
JDK est un sur-ensemble de JRE, et contient tout ce qui est dans JRE, plus des outils tels que les compilateurs et les débogueurs nécessaires au développement applets et applications. JRE fournit les bibliothèques, le Java Virtuel Machine (JVM), et d'autres composants pour exécuter des applets et des applications écrit dans le Java langage de programmation.
Selon Documentation Oracle java.home
est une propriété système qui représente le répertoire d'installation de Java Runtime Environment. JAVA_HOME
est une variable d'environnement - pas une propriété système. Veuillez vous référer à cet article pour vérifier quelle est la différence entre la propriété système et la variable d'environnement.
Vous pouvez également vous référer à cet article pour en savoir plus sur JAVA_HOME
.