JRE/JDK/Java 9的64位插件与IE 11 64位不兼容

Sha*_*pta 5 java 64-bit applet internet-explorer-11 java-9

我正在尝试在Internet Explorer 11(64位)上使用JRE 9运行applet,但它没有运行.我试过Windows 10和Server 2012.在我的应用程序中,我们使用deployJava.js检测已安装的jre版本.如果未找到任何版本,则会显示下载提示.这个检测是通过javascript函数getJREs完成的,可以在这里找到.请参阅下面的代码段:

getJREs: function() {
    var list = new Array();
    if (this.isPluginInstalled()) {
        var plugin =  this.getPlugin();
        var VMs = plugin.jvms;
        for (var i = 0; i < VMs.getLength(); i++) {
            list[i] = VMs.get(i).version;
        }
    } else {
        var browser = this.getBrowser();

        if (browser == 'MSIE') {
            if (this.testUsingActiveX('9')) {
                list[0] = '9';
            } else if (this.testUsingActiveX('1.8.0')) {
                list[0] = '1.8.0';
            } else if (this.testUsingActiveX('1.7.0')) {
                list[0] = '1.7.0';
            } else if (this.testUsingActiveX('1.6.0')) {
                list[0] = '1.6.0';
            } else if (this.testUsingActiveX('1.5.0')) {
                list[0] = '1.5.0';
            } else if (this.testUsingActiveX('1.4.2')) {
                list[0] = '1.4.2';
            } else if (this.testForMSVM()) {
                list[0] = '1.1';
            }
        } else if (browser == 'Netscape Family') {
            this.getJPIVersionUsingMimeType();
            if (this.firefoxJavaVersion != null) {
                list[0] = this.firefoxJavaVersion;
            } else if (this.testUsingMimeTypes('9')) {
                list[0] = '9';
            } else if (this.testUsingMimeTypes('1.8')) {
                list[0] = '1.8.0';
            } else if (this.testUsingMimeTypes('1.7')) {
                list[0] = '1.7.0';
            } else if (this.testUsingMimeTypes('1.6')) {
                list[0] = '1.6.0';
            } else if (this.testUsingMimeTypes('1.5')) {
                list[0] = '1.5.0';
            } else if (this.testUsingMimeTypes('1.4.2')) {
                list[0] = '1.4.2';
            } else if (this.browserName2 == 'Safari') {
                if (this.testUsingPluginsArray('9')) {
                    list[0] = '9';
                } else if (this.testUsingPluginsArray('1.8')) {
                    list[0] = '1.8.0';
                } else if (this.testUsingPluginsArray('1.7')) {
                    list[0] = '1.7.0';
                } else if (this.testUsingPluginsArray('1.6')) {
                    list[0] = '1.6.0';
                } else if (this.testUsingPluginsArray('1.5')) {
                    list[0] = '1.5.0';
                } else if (this.testUsingPluginsArray('1.4.2')) {
                    list[0] = '1.4.2';
                }
            }
        }
    }

    if (this.debug) {
        for (var i = 0; i < list.length; ++i) {
            log('[getJREs()] We claim to have detected Java SE ' + list[i]);
        }
    }

    return list;
}
Run Code Online (Sandbox Code Playgroud)

在JRE 9的情况下,此函数无法检测到java版本,并且applet无法加载.以下是我看到的讨论内容相同:

  1. JDK-8188306
  2. JDK-8193431
  3. JDK-8162522
  4. 这个微软的回答
  5. 这个SO OP使用32位JRE解决它.在我的情况下,它不可能,因为Oracle没有发布32位版本的JRE/JDK 9.

此外,我可以看到两个Java SSV插件助手在IE插件列表中列为不兼容.

我试图用JRE 1.8(32位和64位)加载applet,它加载完全正常.

我知道applet在java 9中已被弃用,但弃用并不意味着它们不会运行,是吗?

PS:如果你不要求我不使用applet,我将不胜感激,因为我必须为了传统目的而这样做.所以,提前谢谢!

小智 0

请参阅下面的链接。

EBS 11i 的认证仍在等待中

我们计划使用 EBS 11i 来认证 IE 11。该认证目前正在进行中,并将很快发布。

如果您运行的是 EBS 11i,则必须确保您的关键任务桌面保留在早期认证的浏览器上,直到此认证完成。截至本文发布时,经过认证的浏览器包括适用于 Windows 桌面的 IE 10 和 Firefox ESR 31。

您可以使用 Microsoft 的 Internet Explorer 11 Blocker Toolkit 阻止自动更新:

https://blogs.oracle.com/stevenchan/internet-explorer-11-certified-with-e-business-suite-122-and-120