有没有标准的方法来做到这一点?我意识到这可能与平台有关。我们的产品现在只在Windows上支持 - 所以我想这就是我现在感兴趣的东西。我能想到的唯一事情是扫描注册表或抓取文件系统。扫描文件系统似乎需要很长时间 - 并且注册表可能不可靠。我应该两个都做吗?还有其他建议吗?我试图寻找一个API,但没有运气。
答案 0 :(得分:34)
System.out.println(System.getProperty("java.version"));
其他属性here
答案 1 :(得分:3)
我首先要查找JAVA_HOME环境变量(可能是JDK_HOME,尽管这种情况不太常见),然后确定它是什么版本以及它是JDK还是JRE。
之后检查常见的位置。找出系统的程序文件目录(不要只假设它是C:\ Program Files,即使它是99.5%的时间)并在其下寻找常见的安装位置(例如Java)。
我不会进行详尽的搜索。
值得一提的是:你真的需要以这种方式找到JDK吗?难道你不能问用户他或她想要使用什么JDK,可能会建议你已经找到的任何简单的JDK?
答案 2 :(得分:1)
我可能会去寻找Java安装的注册表项并抓取默认位置进行安装(这不应该花太长时间)。
另一种方法是捆绑一个小型Java应用程序,该应用程序打印各种细节,例如正在运行的JVM。