为什么当我用64位jvm中的小程序打开一个页面时,IE 11会崩溃,但对32位jvm可以正常工作?

问题描述:

我有一个加载小程序的网页。如果我安装了32位jre,一切正常,但是当我只有64位jre时,只要打开页面,IE 11就会崩溃。另外,当我保持32位和64位时,无论我保留在我的环境变量中,页面加载但是applet由32位jvm运行,即使我没有把它的路径放在任何地方也是如此。为什么当我用64位jvm中的小程序打开一个页面时,IE 11会崩溃,但对32位jvm可以正常工作?

32位和64位版本都是相同的,即8u51。

我也尝试禁用IE的所有附加组件,但没有运气。没有日志没有生成任何东西,所以我不知道在哪里看。

我能想到的唯一原因是存在一些dll冲突。我在applet中使用JNI。

另外,为什么当我没有指定任何地方时,它自己选择32位jvm?

+0

备注:Applets已弃用,浏览器正在移除Java支持。如果您确实需要它,请改用Java Web Start。 – BackSlash

+0

我怀疑这是因为浏览器是32位的,而它又必须将32位JVM加载到它自己。它不启动外部JVM。 – KevinO

+0

我害怕,但我必须使用小程序。此外,浏览器是64位。我已经检查过了。 –

在开发工具控制台中键入navigator.platform ...它会告诉你当前IE框架的位数。 IE中的文件>属性菜单将告诉你该站点映射到哪个IE安全区...默认情况下,只有受信任和内部网区域中的站点才会使用32位进程(ActiveX)...您应该同时部署32位和64位Java JRT到64位机器.... 32位机器(粗糙的)将只运行32位进程,无论它放置在IE安全区域中...