IE 11 找不到 Java 插件到 运行 Applet

IE 11 can't find Java Plugin to run Applet

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

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

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

还有两个 SSV Helpers - 也许是它们导致了问题?

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

问题:

如何在IE 11和运行小程序中检测Java插件?

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;
    }
},

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

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

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

哪个returns:

Automation server can't create object

但是 运行在稍旧的 IE 11.09600 中使用相同的代码 returns 对象:

[object] { }

我很困惑...Oracle 可以将脚本做得更好吗?

规格:

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

系统:Windows服务器

Java:使用 1.8.1441.7.80

之后测试

Oracle deployJava.js

的小程序 运行

我找到了解决方案:

小程序需要在客户端计算机上安装 32 位 JRE(作为 IE 插件)。或者更具体地说,IE ActiveX 机制仅适用于 32 位 Java,因为默认情况下所有 IE 都是 32 位的。也有64位的IE版本,不过我没试

我用的是最新的JRE 1.8u144 32 bit

任何人使小程序工作的一些提示(即使在 2017 年):

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

可以从此讨论中检索更多信息:

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

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

最好下载一个32位的jre,它会自动配置必要的插件。此修复使 IE 成为 运行 小程序。