IE 11无法找到Java插件来运行Applet

时间:2017-07-31 18:56:09

标签: javascript java internet-explorer applet activex

我使用Java Applets进行应用程序构建,适用于使用IE 9的Windows 7。现在我尝试将其移动到另一个环境。有 Internet Explorer 11

使用来自Oracle Deployment Toolkit Script的最新版本https://www.java.com/js/deployJava.txt来运行小程序。但是脚本没有检测到Java插件。它只会重定向到页面java.com(建议下载最新的JRE)。

但是我的浏览器安装了Java插件(这里是JRE 1.7.80):

enter image description here

还有两个 SSV助手 - 可能会导致问题吗?

enter image description here

Java 8(u144)导致同样的问题。

问题:

如何在IE 11中检测Java插件并运行applet?

deployJava.js或IE 11配置是否有问题?

更多解释:

Oracle deployJava.js脚本使用此类代码检测IE中的JRE版本(deployJava source - lines 1172-1188):

testUsingActiveX: function(version) {
    var objectName = 'JavaWebStart.isInstalled.' + version + '.0';

    // we need the typeof check here for this to run on FF/Chrome
    // the check needs to be in place here - cannot even pass ActiveXObject
    // as arg to another function
    if (typeof ActiveXObject == 'undefined' || !ActiveXObject) {
        log('[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?');
        return false;
    }

    try {
        return (new ActiveXObject(objectName) != null);
    } catch (exception) {
        return false;
    }
},

不幸的是,在IE 11中,ActiveX似乎受到限制,限制或禁用。SO is here上的这个主题......有谁知道任何细节?

我手动运行(在IE 11.1480开发者控制台中)此代码:

new ActiveXObject('JavaWebStart.isInstalled.1.8.0.0');

返回:

  

自动化服务器无法创建对象

但是在较旧的IE 11.09600中运行相同的代码会返回对象:

  

[object] {}

我很困惑...... Oracle可以更好地完成脚本吗?

规格:

Internet Explorer 11,版本:11.1480 ...更新版本:11.0.44

系统:Windows Server

Java:使用 1.8.144 进行测试,然后在 1.7.80

之后进行测试

由Oracle deployJava.js

运行的小程序

2 个答案:

答案 0 :(得分:5)

我找到了解决方案:

Applet需要在客户端计算机上安装 32位JRE (以及作为IE插件)。或者更具体的IE ActiveX机制仅适用于32位Java,因为默认情况下所有IE都是32位。还有64位IE版本,但我不会尝试。

我使用了最新的JRE 1.8u144 32 bit

任何人都可以使applet工作的一些提示(即使在2017年):

  1. 检查Internet Explorer版本(32位或64位) - 查看帮助 - > 关于Internet Explorer ,如果没有64位信息,那么您可能使用32位。还检查Windows任务管理器并搜索* 32进程。 other SO questions like this
  2. 中的详细信息
  3. 禁用ActiveX过滤也可能有所帮助。但在我的情况下,这并不是必要的,因为IE显示的消息警告运行Java插件,我只需要接受它。
  4. 我已在 Internet选项窗口中的安全选项卡上禁用了选项:启用保护模式(对于 Internet区域 )。
  5. 可以从此讨论中检索更多信息:

    https://answers.microsoft.com/en-us/ie/forum/ie11-iewindows_10/cannot-access-secure-website-that-requires-java/173f732b-7377-41f6-8c6f-2ae171f4da7a?auth=1

答案 1 :(得分:1)

以上回答很有用。但我们对jre1.8.0_144进行了更新。我在我的系统中重新安装了32位JDK,它在我的Internet Explorer 11中自动集成了一个java插件11.144.2。另外,我可以看到该插件的体系结构为32位和64位。

下载32位jre会自动配置必要的附加功能。此修复使IE运行applet。