在系统上安装多个JRE时使用哪个rt.jar?

时间:2012-09-28 17:14:01

标签: java runtime

在Windows系统上,假设您安装了多个JRE并假设您通过显式指定java.exe的绝对路径来启动java,并假设您不依赖任何环境变量(如JAVA_HOME)将java.exe接收它的运行时来自它所在的目录树,或者它依赖于某些注册表设置,即"官方" java安装程序创建?

换句话说,Java用于查找运行时的算法是什么?您不必在类路径上指定运行时,如果您尝试输出System.getProperty的内容(" java.class.path"),则不会显示运行时。

1 个答案:

答案 0 :(得分:3)

如果您调用C:\Some\Path\Java\jre\bin\java.exe,则会使用C:\Some\Path\Java\jre\lib\rt.jar。它基本上使用..\lib\rt.jar。它不做任何花哨的解决方案或注册表查找,只是一个相对路径引用。

如果需要在Java应用程序中找到该引用,可以使用:

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