繁体   English   中英

以编程方式确定我的盒子上安装了哪些JDK / JRE

[英]Programmatically determine what JDK/JRE's are installed on my box

有没有标准的方法来做到这一点? 我意识到这可能与平台有关。 我们的产品现在只在Windows上支持 - 所以我想这就是我现在感兴趣的东西。 我能想到的唯一事情是扫描注册表或抓取文件系统。 扫描文件系统似乎需要很长时间 - 并且注册表可能不可靠。 我应该两个都做吗? 还有其他建议吗? 我试图寻找一个API,没有运气。

System.out.println(System.getProperty("java.version"));

其他属性在这里

我首先要查找JAVA_HOME环境变量(可能还有JDK_HOME,尽管那不太常见),然后确定它是什么版本以及它是JDK还是JRE。

之后检查常见的位置。 找出系统的程序文件目录(不要只假设它是C:\\ Program Files,即使它是99.5%的时间)并在其下寻找常见的安装位置(例如Java)。

我不会做详尽的搜索。

值得一提的是:你真的需要以这种方式找到JDK吗? 难道你不能问用户他或她希望使用什么JDK,可能会建议你已经发现的任何简单的JDK?

我可能会寻找Java安装的注册表项并抓取默认位置进行安装(这不应该花费太长时间)。

另一种方法是捆绑一个小型Java应用程序,该应用程序打印各种细节,例如正在运行的JVM。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM