[英]Java applet fails in java7 on page load/reload in IE9
我正在Web應用程序(ASP.NET)中運行Applet,並使用deployJava.js進行 部署 。 它在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凍結后,我檢查了iexplorer.exe進程,它獲取了130-180 Mb的RAM。 刪除此過程后,iexplorer.exe將重新加載並正常工作,直到重新加載下一個瀏覽器/小程序。
如果我不夠清楚,請詢問更多詳細信息。 謝謝。
誰能幫助我解決IE9&Java7問題?
我們在IE9中也遇到了同樣的問題,並且能夠通過使用“對象”-標記而不是“小程序”來解決這些問題,並通過HTML標頭中的X-UA元標記將IE9強制為IE9-文檔模式。 這都解決了Java6-和最新的Java7運行時的穩定性問題。
我們已經在幾個Java小程序中看到了相同的行為。
這個問題實際上是在Java 7u4中引入的,並一直持續到7u5。
更糟糕的是……罪魁禍首似乎是Java插件本身……因此禁用7u5和啟用6uXX不足以解決該問題。 您必須卸載 Java 7。
基本上,我們看到兩個問題:
我們已經針對此問題在Oracle中輸入了一個錯誤,並且沒有收到很多答復。
可以使用Oracle自己的Java測試小程序輕松重現該問題:
http://www.java.com/en/download/testjava.jsp
這是我們輸入的錯誤。 您也輸入過嗎?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7176027
對於我們的產品/客戶而言,這是一個災難性的問題。
如果/當您輸入Oracle的錯誤報告時,請同時參考上面的錯誤!
我的Applet也遇到了所有這些問題-僅限於IE9和Java7。我在網上發現的所有建議都沒有任何改善。
幸運的是,Oracle一定有人在聽所有抱怨。 Java 7 Update 6在2012年8月22日成為默認的JRE下載,並且即使沒有我輸入的所有“修復程序”,我們的Applet現在都可以正常運行。
我以前有這個問題。 我不明白為什么會這樣,但是我通過在每次加載時使用不同的VM來解決了它:
var attributes = {
code: '...',
archive: '...',
width: '...',
height: '...',
separate_jvm: true
};
var parameters = {
};
var version = '1.7';
deployJava.runApplet(attributes, parameters, version);
我知道這是一個非常老的問題,但是我認為在舊系統中有這個問題的我們中的人確實需要一個答案。 就我而言,我沒有重新加載任何東西,我的applet是使用javascript(deploy.js)注入的,但我認為相同的解決方案也可以工作。 因此,在兩天里嘗試了很多事情之后,這就是我可以使用的解決方案:
將Applet加載到彈出窗口中,並在每次執行后將其關閉 。 我認為這是可行的,因為每次瀏覽器將彈出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中存在此問題 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.