简体   繁体   English

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

[英]IE 11 can't find Java Plugin to run Applet

I have application build with Java Applets, which works fine for Windows 7 with IE 9. Now I'm trying move it to another environment. 我有使用Java Applets的应用程序构建,适用于带有IE 9的Windows 7。现在我正在尝试将其移动到另一个环境。 There is Internet Explorer 11 . Internet Explorer 11

To run applet I'm using Oracle Deployment Toolkit Script with latest version taken from https://www.java.com/js/deployJava.txt . 要运行applet,我使用的是Oracle Deployment Toolkit Script ,其最新版本来自https://www.java.com/js/deployJava.txt But the script doesn't detect Java Plugin . 但该脚本未检测到Java插件 It only redirects to page java.com (suggesting to download latest JRE ). 它只重定向到页面java.com (建议下载最新的JRE )。

But my browser has Java Plugin installed (here JRE 1.7.80): 但是我的浏览器安装了Java插件(这里是JRE 1.7.80):

在此输入图像描述

There are also two SSV Helpers - maybe they cause the problem? 还有两个SSV助手 - 也许他们会导致这个问题?

在此输入图像描述

Java 8 (u144) cause the same problem. Java 8(u144)导致同样的问题。

Question: 题:

How to detect Java Plugin in IE 11 and run applet? 如何在IE 11中检测Java插件并运行applet?

Is it problem with deployJava.js or IE 11 configuration? deployJava.js或IE 11配置有问题吗?

More explanations: 更多解释:

Oracle deployJava.js script uses such code to detect JRE version in IE ( deployJava source - lines 1172-1188 ): Oracle deployJava.js脚本使用此类代码来检测IE中的JRE版本( deployJava源代码 - 行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;
    }
},

Unfortunately, ActiveX seems to be limited, restricted or disabled in IE 11. This topic on SO is here ... anyone knows any details? 不幸的是,ActiveX 11似乎在IE 11中受到限制,限制或禁用。关于SO的这个主题在这里 ......任何人都知道任何细节?

I run manually (in IE 11.1480 developer console) this code: 我手动运行(在IE 11.1480开发者控制台中)这段代码:

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

which returns: 返回:

Automation server can't create object 自动化服务器无法创建对象

But running the same code in a bit older IE 11.09600 returns object: 但是在较旧的IE 11.09600中运行相同的代码会返回对象:

[object] { } [对象] {}

I'm confused... Can Oracle do the script better? 我很困惑...... Oracle可以更好地编写脚本吗?

Specification: 规格:

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

System: Windows Server 系统:Windows Server

Java: tested with 1.8.144 and after 1.7.80 Java:在1.8.1441.7.80之后测试

Applets run by Oracle deployJava.js 由Oracle deployJava.js运行的Applet

I've found a solution: 我找到了一个解决方案:

Applets requires 32-bit JRE installed on client machine (and as IE Plugin). Applet需要在客户端计算机上安装32位JRE (以及IE插件)。 Or to be more specific IE ActiveX mechanism works only with 32-bit Java because all IE are 32-bit by default. 或者更具体的IE ActiveX机制仅适用于32位Java,因为默认情况下所有IE都是32位。 There are also 64-bit IE version, but I don't try it. 还有64位IE版本,但我不尝试。

I used the newest JRE 1.8u144 32 bit . 我使用了最新的JRE 1.8u144 32 bit

Some hints for anyone to make applets work (even in 2017): 任何人都可以使applet工作的一些提示(即使在2017年):

  1. Check Internet Explorer version (32- or 64-bit) - look at Help -> About Internet Explorer , if there is no 64-bit info, then you probably use 32-bit. 检查Internet Explorer版本(32位或64位) - 查看帮助 - > 关于Internet Explorer ,如果没有64位信息,则可能使用32位。 Check also Windows Task Manager and search for *32 processes. 还检查Windows任务管理器并搜索* 32进程。 More info in other SO questions like this . 更多信息在这样的其他SO问题
  2. Disable ActiveX Filtering may also help. 禁用ActiveX筛选也可能有所帮助。 But in my situation, this wasn't necessary because IE displays message which warn about running Java plugin and I just need to accept this. 但在我的情况下,这不是必要的,因为IE显示的消息警告运行Java插件,我只需要接受这个。
  3. I have disabled option: Enable Protected Mode on Security tab in Internet Options window (for Internet zone ). 我已禁用选项:在“ Internet选项”窗口的“ 安全”选项卡上启用“保护模式 ”(对于Internet区域 )。

More information can be retrieved from this discussion: 可以从此讨论中检索更多信息:

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

Above answer was useful. 以上答案很有用。 But we did an update to jre1.8.0_144. 但我们对jre1.8.0_144进行了更新。 I reinstalled 32 bit JDK in my system which integrated a java plug-in 11.144.2 automatically as add on in my Internet explorer 11. Also I could see the architecture of the plugin as 32 bit and 64 bit. 我在我的系统中重新安装了32位JDK,它在我的Internet Explorer 11中自动集成了一个java插件11.144.2。另外,我可以看到插件的体系结构为32位和64位。

Its good to download a 32 bit jre which will automatically configure the necessary add on. 它可以下载一个32位的jre,它会自动配置必要的附加功能。 This fix made IE to run applets. 此修复使IE运行applet。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM