有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javascript IE 11找不到运行小程序的Java插件

我用Java小程序构建了应用程序,它在Windows7和IE9上运行良好。现在我试着把它移到另一个环境中。有Internet Explorer 11

要运行applet,我使用的是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

Java8(u144)也会导致同样的问题

问题:

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

deployJava.js还是IE 11配置有问题

更多解释:

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

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] { }

我很困惑。。。甲骨文能做得更好吗

规格:

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

系统:Windows Server

Java:在1.8.144和1.7.80之后测试

Oracle运行的小程序deployJava.js


共 (2) 个答案

  1. # 1 楼答案

    以上答案很有用。但我们更新了jre1。8.0_144. 我在我的系统中重新安装了32位JDK,它自动集成了java插件11.144.2,作为Internet explorer 11的附加组件。我还可以看到插件的体系结构是32位和64位

    下载32位jre很好,它将自动配置必要的附加组件。此修复使IE无法运行小程序

  2. # 2 楼答案

    我找到了一个解决方案:

    小程序需要在客户端计算机上安装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. 禁用ActiveX过滤也可能有所帮助。但在我的情况下,这是没有必要的,因为IE会显示警告运行Java插件的消息,我只需要接受这一点
    3. 我禁用了选项:互联网选项窗口的安全选项卡上启用受保护模式(用于互联网区域

    可以从本讨论中获取更多信息:

    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