我正在使用deployment在Web应用程序(ASP.NET)deployJava.js中运行Applet。它在Java 6 u XX上工作正常。
在Java 7u5的最新更新之后,我遇到了一个难以理解的问题。在IE9上,Applet工作正常,但是在重新加载(F5或回发)后,Applet只会冻结。
Java Plug-in 10.5.0.05
Using JRE version 1.7.0_05-b05 Java HotSpot(TM) Client VM
User home directory = C:\Users\***
basic: Starting applet teardown
basic: Finished applet teardown
basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@2e749c
plugin2manager.parentwindowDispose
在Firefox和Chrome上,Applet运行正常。将JRE版本降级为6之后,所有浏览器(包括IE-9)都能正常工作。
我已经阅读了几张带有相同问题的Java / Oracle / IE9门票并尝试了规定的解决方法,但他们没有帮助:
如果我不够清楚,请询问更多细节。感谢。
有人可以帮我解决IE9和Java7问题吗?
答案 0 :(得分:3)
我们在IE9中遇到了同样的问题,并且能够通过使用“object”-Tag而不是“applet”来解决这些问题,并通过HTML中的X-UA元标记强制IE9进入IE9文档模式头。这既包括Java6的固定稳定性问题,也包括最新的Java7运行时。
答案 1 :(得分:2)
我们已经看到了与我们的几个Java小程序相同的行为。
这个问题实际上是在Java 7u4中引入的,并且一直持续到7u5。
更糟糕的是...罪魁祸首似乎是Java插件本身...因此禁用7u5并启用6uXX还不足以解决这个问题。您必须卸载 Java 7。
基本上我们看到两个问题:
我们已针对此问题向Oracle提出了一个错误,但未收到太多响应。
使用Oracle自己的Java Test Applet可以轻松复制该问题:
http://www.java.com/en/download/testjava.jsp
以下是我们输入的错误。你也输了一个吗?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7176027
对于我们的产品/客户来说,这是一个相当灾难性的问题。
如果/当您输入Oracle的错误报告时,请参考上面的错误!
答案 2 :(得分:1)
我的Applet也遇到了所有这些问题 - 只有IE9和Java 7.我在网上找到的任何建议都没有任何改进。
幸运的是,甲骨文的某些人一直在听取所有的抱怨。 Java 7 Update 6于2012年8月22日成为默认的JRE下载,我们的Applet现在运行正常 - 即使没有我提供的所有“修复”。
答案 3 :(得分:0)
之前我遇到过这个问题。我不明白为什么会这样,但我通过在每次加载时使用不同的VM来解决它:
var attributes = {
code: '...',
archive: '...',
width: '...',
height: '...',
separate_jvm: true
};
var parameters = {
};
var version = '1.7';
deployJava.runApplet(attributes, parameters, version);
答案 4 :(得分:0)
我知道这是一个非常老的问题,但是我认为在旧系统中有这个问题的我们中的人确实需要一个答案。 就我而言,我没有重新加载任何东西,我的applet是使用javascript(deploy.js)注入的,但是我认为相同的解决方案也可以工作。因此,在两天里尝试了很多之后,这就是解决方案我上班了:
在弹出窗口中加载小程序,并在每次执行后将其关闭。我认为这可行,因为每次浏览器将弹出DOM加载为“新”时。
var attributes = {
code: '...Applet.class',
archive: '...applet.jar',
codebase: '/context',
width: 1,
height: 1,
separate_jvm: true
};
var parameters = {
someCallback: 'opener.appletCallback',
};
var aPopup = null;
function deployAppletInAPopup() {
setTimeout(function () {
aPopup = window.open('', '', 'width=100,height=100');
aPopup.document.open();
deployJava.runAppletIntoDocument(aPopup.document, attributes, parameters, "1.6");
aPopup.document.close();
}, 10);
}
function appletCallback() {
setTimeout(function () {
if (aPopup) {
aPopup.close();
}
aPopup = null;
}, 10);
}
[...]
<button onclick="deployAppletInAPopup()">Deploy Applet into a Popup</button>
我正在使用Windows 10,IE11和jdk-8u181-windows-i586。 仅在Java 8中存在此问题。