2

Java アプレットをローカルで実行する際に問題があります。つまり、クラス ファイルがサーバー上ではなく、ローカル ファイル システムに存在します。次の例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
    <body>
        <applet code="Java10Test.class"
            width=200
            height=200
            codebase="http://www.cis.upenn.edu/~matuszek/General/JavaVersionTests/"
            >
        </applet>
        Text ...
    </body>
</html>

Firefox 23 および Oracle Java 7u25 でうまく動作します。しかし、ローカル マシンにダウンロードして、使用しているコードベースとJava10Test.class同じフォルダーに配置すると機能しません。.html私は試してみましたが、成功しませんでしたcodebase="."codebase="file:///pathToTheFolder"Firefox は、アプレット用に 200x200 のスペースさえ予約しません。Java もバックグラウンドで開始されません (他のすべてのアプレットのように Java コンソールは開きません)。つまり、これは Java のセキュリティ上の問題ではありません。警告/エラー メッセージはありません。

ローカル バージョンは Chrome で問題なく動作します。この動作は、さまざまなマシン (Mac/Linux) で再現可能です。

Firefox でアプレットをローカルで使用する正しい方法は何ですか? インターネットにアクセスできないシステムにはこれが必要です。

4

2 に答える 2

2

Firefox でアプレットをローカルで使用する正しい方法は何ですか?

それらを localhost のサーバーから実行すると (Apache をインストールするなど)、ネット上と同じ動作を示すはずです。

..なぜローカルクラスファイルが適切に使用されないのか、それはまだ興味深いでしょう。

セキュリティに関係していると思います。IE では、HTML がローカル ファイル システムから読み込まれると、スクリプトを実行するように長い間要求されてきました。一般に、「ネットワーク」は自分のディスクよりも安全な環境と見なされます。

ちなみに、私は FF を実行しましたが、最近、アプレットの埋め込みと JWS アプリの起動に使用されるDeployment Toolkit Scriptを実行すると、FF が失敗し始めたことに気付きました。あなたのものでテストするまで、「ローカル(unjar'd、unsigned)アプレット要素」を単純に(そして完全に)無視していることに気づきませんでした。警告もプロンプトもなしにそれらを無視するという事実は、少なくともアプレットを作成または保守する必要がある開発者にとっては厄介です。:(


アプレットが正常にロードされたことを確認する唯一の方法は、ロード後にJS を使用してアプレットをクエリすることです。特定の時間が経過しても JS からアプレットのパブリック メソッドにアクセスできない場合は、なんらかの理由でアプレットがロードに失敗したと想定し、そこから続行します。

于 2013-08-20T11:17:14.633 に答える
2

これはFirefox 23 の既知のバグです。ローカルで安全でないコードベースの使用をブロックする必要があります..が、誤って他のローカル パスもブロックしてしまいます。

現在知られている回避策は次のとおりです。

  • security.fileuri.strict_origin_policy=falseにセットabout:config
  • 他の回答で提案されているように、ローカルファイルの代わりにローカルWebサーバーを使用してください
于 2013-08-20T12:51:39.337 に答える