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.

Author: yogsma, 2017-08-01

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:

entrez la description de l'image ici

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.

 13
Author: Marco Vargas, 2017-08-03 15:58:51

Selon Documentation Oracle java.home est une propriété système qui représente le répertoire d'installation de Java Runtime Environment. JAVA_HOMEest 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.

 3
Author: Alexey R., 2017-08-01 15:42:08