如果我知道Java版本(例如1.6.0_31),如何在Windows计算机上编程方式(即在Java程序内部)查找相应的JRE位于哪个磁盘位置?
您可以通过读取 java.home
系统环境变量的值来获取它。请参考http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html。
但请注意,安全管理器可能会阻止您,如上文所述:
安全考虑:访问系统属性可能会受到安全管理器的限制。这在小程序中最常出现,它们无法读取某些系统属性,也无法写入任何系统属性。如需了解有关在 Java 丰富的互联网应用程序中访问系统属性的更多信息,请参阅“使用 Java 做更多事情”的“系统属性”课程。
System.getProperty("java.home");
将返回正在运行程序的JRE的安装目录。
还可以查看以下链接以获取更多信息:http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
java.home
:String installDirOfJRE = System.getProperty("java.home");
根据返回值,您可以期望(但仅是期望)其他版本的JRE将会在同一父文件夹中,因此您可以尝试搜索您想要找到的版本。
恐怕没有其他选择...
System.getProperty("java.runtime.version");
提供正在执行的虚拟机版本。