5

deployJava.jsを使用して、Web アプリケーション (ASP.NET) でアプレットを実行しています。Java 6 u XXで動作/正常に動作します。

Java 7u5 への最新の更新後、理解できない問題に遭遇しました。IE9 では、最初はアプレットが正常に動作しますが、リロード (F5 キーまたはポストバック) を行うと、アプレットがフリーズします。

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 では、アプレットは正常に動作します。JRE のバージョンを 6 にダウングレードすると、すべてのブラウザ (IE-9 を含む) が正常に動作します。

同じ問題を抱えた Java/Oracle/IE9 チケットをいくつか読み、規定の回避策を試しましたが、解決しませんでした:

ところで: IE9 がフリーズした後、ieexplorer.exe プロセスをチェックすると、130 ~ 180 Mb の RAM が使用されます。このプロセスを削除すると、ieexplorer.exe がリロードされ、次のブラウザ/アプレットのリロードまで正常に動作します。

私が自分自身を十分に明確にしていない場合は、詳細を尋ねてください。ありがとう。

IE9とJava7の問題を解決するのを手伝ってくれる人はいますか?

4

5 に答える 5

3

IE9 でも同じ問題がありましたが、"applet" の代わりに "object" タグを使用して修正し、HTML ヘッダーの X-UA メタ タグを介して IE9 を強制的に IE9-document-mode にすることができました。これにより、Java6 および最新の Java7 ランタイムの安定性の問題が修正されました。

于 2012-08-08T14:02:39.880 に答える
2

これと同じ動作が、いくつかの Java アプレットで確認されています。

この問題は、実際には Java 7u4 で導入され、7u5 に引き継がれています。

さらに悪いことに、原因は Java プラグイン自体にあるようです。そのため、7u5 を無効にして 6uXX を有効にするだけでは、問題に対処するには不十分です。Java 7をアンインストールする必要があります。

基本的に、次の 2 つの問題が発生しています。

  • n回目のロード試行でアプレットがまったくロードされない
  • ブラウザのデッドロック

この問題について 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 にバグ レポートを入力する場合は、上記のバグも参照してください。

于 2012-07-02T14:28:38.213 に答える
1

私たちのアプレットにもこれらすべての問題がありました-IE9とJava 7のみでした.オンラインで見つけた提案のどれも改善をもたらしませんでした.

幸いなことに、オラクルの誰かがすべての苦情に耳を傾けていたに違いありません。Java 7 Update 6 は 2012 年 8 月 22 日にデフォルトの JRE ダウンロードになり、私たちのアプレットは現在、私が入れたすべての「修正」がなくても正常に動作します。

于 2012-08-23T15:12:03.853 に答える
0

以前にこの問題がありました。なぜそれが起こるのかわかりませんが、ロードごとに異なる VM を使用して解決しました。

var attributes = {
    code: '...',
    archive: '...',
    width: '...',
    height: '...',
    separate_jvm: true
};
var parameters = {
};
var version = '1.7';
deployJava.runApplet(attributes, parameters, version);
于 2013-02-28T19:26:44.990 に答える
0

これが非常に古い質問であることは承知していますが、古いシステムでこの問題を抱えている私たちには、本当に答えが必要だと思います. 私の場合、何もリロードしていません。アプレットは javascript (deploy.js) を使用して挿入されていますが、同じ解決策が機能すると思います。したがって、2日間で多くのことを試した後、これが私が取り組んだ解決策です:

アプレットをポップアップでロードし、毎回実行後に閉じます。ポップアップ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 でのみ発生します

于 2018-08-07T20:47:57.413 に答える