我想在 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 ,但版本已安装。 抛出异常并返回虚假。
是否有任何解决方法或更好的方法来解决此问题。
答案 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.13
或null
。使用此编号,您可以解析特定版本号并将其与所需版本进行比较。