2 votes

quel rt.jar est utilisé lorsque plusieurs JRE sont installés sur un système ?

Sur un système Windows, en supposant que plusieurs JRE y sont installés, que vous lancez java en spécifiant explicitement le chemin absolu de java.exe et que vous ne vous appuyez pas sur des variables d'environnement telles que JAVA_HOME, java.exe ira-t-il chercher son moteur d'exécution dans l'arborescence du répertoire où il se trouve ou s'appuiera-t-il sur un paramètre du registre créé par le programme d'installation "officiel" de java ?

En d'autres termes, quel est l'algorithme que Java utilise pour trouver son temps d'exécution ? Il n'est pas nécessaire de spécifier le runtime dans le classpath et si vous tentez d'afficher le contenu de System.getProperty("java.class.path"), le runtime n'apparaît pas.

3voto

Brian Points 7975

Si vous invoquez C:\Some\Path\Java\jre\bin\java.exe alors il utilisera C:\Some\Path\Java\jre\lib\rt.jar . Il utilise essentiellement ..\lib\rt.jar . Il n'effectue aucune résolution fantaisiste ni aucune recherche dans le registre, mais se contente d'une référence à un chemin relatif.

Si vous avez besoin de trouver cette référence à partir d'une application Java, vous pouvez utiliser :

String javaPath = System.getProperty("java.home");
File rtJar = new File(javaPath, "lib/rt.jar");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X