【发布时间】:2009-07-27 16:26:36
【问题描述】:
有没有标准的方法来做到这一点?我意识到这可能有点依赖于平台。我们的产品目前仅在 Windows 上受支持 - 所以我想这就是我现在感兴趣的。我唯一能想到的就是扫描注册表或爬取文件系统。扫描文件系统似乎需要很长时间 - 而且注册表可能不可靠。我应该两者都做吗?还有其他建议吗?我试图寻找一个 API 来做到这一点,但没有运气。
【问题讨论】:
标签: java windows installation
有没有标准的方法来做到这一点?我意识到这可能有点依赖于平台。我们的产品目前仅在 Windows 上受支持 - 所以我想这就是我现在感兴趣的。我唯一能想到的就是扫描注册表或爬取文件系统。扫描文件系统似乎需要很长时间 - 而且注册表可能不可靠。我应该两者都做吗?还有其他建议吗?我试图寻找一个 API 来做到这一点,但没有运气。
【问题讨论】:
标签: java windows installation
System.out.println(System.getProperty("java.version"));
其他属性here
【讨论】:
我会首先查找 JAVA_HOME 环境变量(可能还有 JDK_HOME,尽管这不太常见),然后确定它是什么版本以及它是 JDK 还是 JRE。
然后检查常见的替代位置。找出系统的程序文件目录(不要仅仅假设它是 C:\Program Files,即使它是 99.5% 的时间)并在该目录下查找常见的安装位置(例如 Java)。
我不会做详尽的搜索。
值得一问:您真的需要以这种方式查找 JDK 吗?您不能直接询问用户他或她希望使用什么 JDK,或者建议您已经找到的任何简单的 JDK 吗?
【讨论】:
我可能会结合查找 Java 安装的注册表项和抓取 默认 位置进行安装(这不会花费太长时间)。
另一种方法是捆绑一个小型 Java 应用程序,该应用程序打印各种详细信息,例如正在运行的 JVM。
【讨论】: