javascript - IE 11 找不到运行 Applet 的 Java 插件

标签 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 Helpers - 也许是它们导致了问题?

enter image description here

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

问题:

如何检测IE 11中的Java Plugin并运行小程序?

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');

返回:

Automation server can't create object

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

[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 位

任何人都可以使用小程序的一些提示(即使在 2017 年):

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

关于javascript - IE 11 找不到运行 Applet 的 Java 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45423357/

相关文章:

java - 在 Eclipse 4.2 上安装 WindowBuilder

javascript - 检测浏览器是否为 IE 7 或更低版本?

css - 为什么边框在 IE 9 中消失并出现 border-collapse :collapse?

javascript - 删除数组中重复的未排序对象

java - 当 URL 相同时,如何区分 New relic 中的 GET 和 PUT 请求事务?

javascript - <ul> <li> 定位

java - Java中的递归方法

html - Firefox、Edge 和 IE 中的 Flexbox column-reverse

javascript - 给定纬度和经度,在 D3 地理投影上绘制点

php - 第一次 onclick 时不调用 javascript 函数