如何使用javascript在IE10中安装JRE / Java版本

时间:2014-10-14 11:14:33

标签: java javascript activex internet-explorer-10

我想在 IE10 中运行applet,这需要最少版本的 java 1.7.0_51

所以在加载applet之前,我想检查当前安装的jre版本并在当前jre不合适的情况下显示正确的消息。

为此,我们使用 deployJava.js https://www.java.com/js/deployJava.txt)。

在此我们调用 getJREs 函数来获取所有可用的jres。 但它返回了一个空列表。

调试后我们在 testUsingActiveX 函数中发现它无法为版本1.7.0创建 ActiveXObject ,但版本已安装。 抛出异常并返回虚假。

是否有任何解决方法或更好的方法来解决此问题。

1 个答案:

答案 0 :(得分:1)

使用navigator.plugins。我相信每个主流浏览器都支持它,即使是旧版本。我已经使用最新版本的Chrome,Firefox,Safari和IE对其进行了测试。

这是一个返回Java Deployment Toolkit版本的函数:

function getJavaVersion() {

    // note the extra space, it's used to make split easier
    var jdtString = 'Java Deployment Toolkit ';
    var jdtIndex = -1;
    // find index of JDT inside navigator.plugins
    for (var i = 0; i < navigator.plugins.length; i++)
        if (navigator.plugins[i].name.indexOf(jdtString) >= 0)
            jdtIndex = i;

    if (jdtIndex === -1)
        return null; // Java Deployment Toolkit was not found

    return navigator.plugins[jdtIndex].name.split(jdtString)[1];
}

如果找不到JDT,则返回Java版本号,例如8.0.50.13null。使用此编号,您可以解析特定版本号并将其与所需版本进行比较。