如何检测客户端机器是否已经安装了JRE版本?

时间:2010-12-09 07:13:12

标签: java javascript

在应用程序中,我们提供客户端选择是否使用JRE下载应用程序的功能。如果可以检测客户端系统是否已经配置了JRE,则可以为此功能提供更加用户友好的操作。

2 个答案:

答案 0 :(得分:1)

如果要限制测试以检查路径上是否安装了 JRE,只需检查环境变量PATHSystem.getEnv())。您应该找到子串bin/javabin\java,具体取决于操作系统。

或使用Runtime.exec来调用java -version并检查结果:它是版本号或错误消息。

否则,您可能需要查看目标计算机上的每个文件夹(如果要显示所有可用的JRE / JDK)。


基于Vladimirs评论 - 如果您不确定,如果已经安装了JRE并且您想要提供非基于Java的安装程序,则必须选择(或命名)其他脚本语言或安装程序你想用。安装程序将依赖于操作系统,因此您必须为所有支持的操作系统编写不同的安装程序。

使用Windows,您可以查看所有已注册JRE的注册表,或检查标准文件夹(C:\ Program Files \ Java)。但是一般方法仍然需要检查目标机器上的所有(或所有)子文件夹。这需要时间,可能不是非常用户友好。

答案 1 :(得分:1)

无法绝对确定是否已安装JRE:

  • JRE可能安装在一个陌生的地方,
  • 它可能安装在用户无法访问的目录中,或
  • 它可能安装在可移动驱动器上......在需要时不会存在。

搜索整个目录树很慢,并且不一定会找到任何内容。用户可能会感到不耐烦......

即使您确实找到了JRE,也不清楚您应该在没有用户说法的情况下使用它。

  • 是用户想要使用的Java版本吗?
  • 是否有最新的安全修复程序?
  • 可能是“乱了”吗?它的证书库中是否有垃圾证书,或者在背书目录中有危险的东西,还是更糟?

最安全的事情可能是只是查看用户的PATH。如果路径上有JRE,那么用户(或他的系统管理员)可以将其放在那里是安全的。