![](/img/trans.png)
[英]How to get 32 bit JRE path on 64 bit Linux with 64 bit browser and 64 bit java plugin
[英]64 bit plugin of JRE/JDK/Java 9 is incompatible with IE 11 64 bit
我正在尝试在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;
}
在JRE 9的情况下,此函数无法检测到java版本,并且applet无法加载。 以下是我看到的讨论内容相同:
此外,我可以看到两个Java SSV插件助手在IE插件列表中列为不兼容。
我试图用JRE 1.8(32位和64位)加载applet,它加载完全正常。
我知道applet在java 9中已被弃用,但弃用并不意味着它们不会运行,是吗?
PS:如果你不要求我不使用applet,我将不胜感激,因为我必须为了传统目的而这样做。 所以,提前谢谢!
Oracle的32位JRE结束使得无法在IE11中运行applet而不为安装Oracle JRE的客户端进行非默认设置。 Applet仍然可以运行,但前提是最终用户或管理员进行必要的设置以使IE与64位JRE一起工作。 JRE的安装不会进行这些设置,它们只会破坏32位插件并将IE11还原为一个进程模型。 所以这只能在受控环境中工作。
有关设置,请参阅此问题: 使用Internet Explorer 11运行64位Java
理论上,即使不强制使用IE的64位设置,java web start也应该可以工作,然后你可以在webstart appletviewer中运行一个不需要javascript绑定的applet。 因此,在非常具体的情况下,可能是运行applet的选项,从默认IE11开始使用JRE10。
请参阅: https : //docs.oracle.com/javase/7/docs/technotes/guides/jweb/applet_migration.html
好奇的一点点游览,实际上有一个32位Windows版本的openjdk 10: https : //github.com/ojdkbuild/ojdkbuild 。 它确实包括Ice Tea Web(ITW)启动器,但它使用npapi,所以今天不再适用于浏览器内小程序。
请参阅以下链接。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.