3

知道 Java 版本(例如 1.6.0_31)我如何以编程方式(从 Java 程序中)找到相应的 JRE 在 Windows 机器上的磁盘上的位置?

4

4 回答 4

2

它应该可以通过读取java.home系统环境变量的值来获得。请参阅 http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

但请记住,安全管理器可能会从上面的链接中阻止您:

安全注意事项:安全管理器可以限制对系统属性的访问。这通常是小程序中的一个问题,它无法读取某些系统属性,也无法写入任何系统属性。有关在 applet 中访问系统属性的更多信息,请参阅 Doing More With Java Rich Internet Applications 课程中的系统属性。

于 2012-09-05T12:51:37.343 回答
1
System.getProperty("java.home");

将为您返回运行该程序的 JRE 的安装目录。

另请查看以下链接以获取更多信息:http ://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

于 2012-09-05T12:51:57.877 回答
1

您可以查看当前系统属性java.home

String installDirOfJRE = System.getProperty("java.home");

根据您可以预期(但只是预期)的返回值,其他版本的 JRE可能位于同一父文件夹中,因此您可以尝试搜索您想要查找的版本。

恐怕没有别的选择了……

于 2012-09-05T12:53:35.410 回答
1
System.getProperty("java.runtime.version");

为您提供执行 VM 的版本。

于 2012-09-05T12:53:38.430 回答