使用JavaScript检测Java版本

时间:2009-01-13 18:22:45

标签: java javascript xhtml

是否有可靠的方法使用JavaScript检测客户端计算机上安装的Java版本?

8 个答案:

答案 0 :(得分:12)

查看Java Deployment Toolkit

中的代码

答案 1 :(得分:12)

根据我们在google上找到这个页面的事实,只是为了帮助下一个人找到这个。

是否安装了Java?

navigator.javaEnabled()

http://www.w3schools.com/jsref/met_nav_javaenabled.asp

安装了哪个版本的Java?

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
var versions = deployJava.getJREs();
</script>

http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit

这是我发现使用JavaScript找到Java版本的最好方法,但是请仔细使用它,因为它的版本检测确实取决于浏览器/浏览器,并且在旧的浏览器版本或安装旧Java的最新浏览器上,它会不按预期工作。在生产中使用它之前,请花时间进行实际测试。

答案 2 :(得分:5)

谷歌搜索

detect "java version" using javascript

产生了几个结果,this one看起来可能有用。本质上,它尝试加载Java小程序,然后JavaScript询问小程序。

答案 3 :(得分:4)

您可以从此处使用PluginDetect库: http://www.pinlady.net/PluginDetect/

答案 4 :(得分:4)

Java版本:

/**
 * @return NULL if not version found. Else return some things like: '1.6.0_31'
 */
var JavaVersion: function()
{
  var result = null;
  // Walk through the full list of mime types.
  for( var i=0,size=navigator.mimeTypes.length; i<size; i++ )
  {
      // The jpi-version is the plug-in version.  This is the best
      // version to use.
      if( (result = navigator.mimeTypes[i].type.match(/^application\/x-java-applet;jpi-version=(.*)$/)) !== null )
          return result[1];
  }
  return null;
}

是Java并且是Java启用:

var IsJava: function()
{
  return typeof(navigator.javaEnabled) !== 'undefined' && navigator.javaEnabled();
}

这些功能适用于Opera,Firefox,Chrome。我没有IE。

答案 5 :(得分:1)

检测逻辑在Windows7-64上的IE32中不起作用。它无法检测到之前安装的java版本。

嗯,在进一步阅读之后,Windows上的Java Deployment Toolkit使用ActiveX classid,这可能会使您的应用程序成为黑客(请参阅http://www.kb.cert.org/vuls/id/886582)。我出去了。

答案 6 :(得分:0)

如果您使用Google Analytics,this post可能会有所帮助(有关详情,请参阅forum thread)。

答案 7 :(得分:0)

我发现Java Deployment Toolkit提供的JavaScript解决方案会出错...“deployJava.do_initialize不是函数”。

我在所有浏览器中广泛使用多年的一个解决方案是 Java版本显示小程序。不幸的是,原作者的网站似乎已经消失,但你可以在这里下载Java Version Display Applet的副本。