少年恃险若平地,独倚长剑凌清秋。这篇文章主要讲述IE 11无法找到运行Applet的Java插件相关的知识,希望能为你提供帮助。
我有使用java Applets的应用程序构建,适用于带有IE 9的Windows 7。现在我正在尝试将其移动到另一个环境。有Internet Explorer 11。
要运行applet,我使用Oracle Deployment Toolkit Script,最新版本取自https://www.java.com/js/deployJava.txt。但该脚本未检测到Java插件。它只重定向到页面java.com
(建议下载最新的JRE
)。
但是我的浏览器安装了Java插件(这里是JRE 1.7.80):
【IE 11无法找到运行Applet的Java插件】
文章图片
还有两个SSV助手 - 也许他们会导致这个问题?
文章图片
Java 8(u144)导致同样的问题。
题:
如何在IE 11中检测Java插件并运行applet?
是
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 11似乎在IE 11中受到限制,限制或禁用。关于SO is here的这个话题......谁都知道任何细节?
我手动运行(在IE 11.1480开发者控制台中)这段代码:
new ActiveXObject('JavaWebStart.isInstalled.1.8.0.0');
返回:
自动化服务器无法创建对象但是在较旧的IE 11.09600中运行相同的代码会返回对象:
[对象] {}我很困惑...... Oracle可以更好地编写脚本吗?
规格:
Internet Explorer 11,版本:11.1480 ...更新版本:11.0.44
系统:Windows Server
Java:在1.8.144和1.7.80之后测试
由Oracle deployJava.js运行的小程序
答案我找到了一个解决方案:
Applet需要在客户端计算机上安装32位JRE(以及IE插件)。或者更具体的IE ActiveX机制仅适用于32位Java,因为默认情况下所有IE都是32位。还有64位IE版本,但我不尝试。
我使用了最新的
JRE 1.8u144 32 bit
。任何人都可以使applet工作的一些提示(即使在2017年):
- 检查Internet Explorer版本(32位或64位) - 查看帮助 - > 关于Internet Explorer,如果没有64位信息,则可能使用32位。还检查Windows任务管理器并搜索* 32进程。更多信息在other SO questions like this。
- 禁用ActiveX筛选也可能有所帮助。但在我的情况下,这不是必要的,因为IE显示的消息警告运行Java插件,我只需要接受这个。
- 我已禁用选项:在“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
另一答案以上答案很有用。但我们对jre1.8.0_144进行了更新。我在我的系统中重新安装了32位JDK,它在我的Internet Explorer 11中自动集成了一个java插件11.144.2。另外,我可以看到插件的体系结构为32位和64位。
它可以下载一个32位的jre,它会自动配置必要的附加功能。此修复使IE运行applet。
推荐阅读
- 在调试模式下运行的同一Android应用程序在发布模式下崩溃
- Angular 5 App在IE 10中不起作用
- Okta教程(appBaseUrl丢失)
- Android - 将搜索传递给片段
- 在空对象引用Error上获取'getActivity()。getApplication()'
- 我正在尝试在android studio上创建标签片段
- Android 9 Pie崩溃(com.google.android.gms ... ClassNotFoundException)
- 管理帐户mvc app c#[关闭]
- XP开机蓝屏提示stop 0x000000c2出错如何修好