62

Java で記述されたこの単純な HelloWorld コードをブラウザー ( Chrome )から実行しようとしています。

public class HelloWorld extends JApplet {
public void init() {
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                JLabel lbl = new JLabel("Hello World");
                add(lbl);
            }
        });
    }
    catch (Exception e) {
        System.err.println("createGUI didn't complete successfully");
    }
}

これをNetBeansでコンパイルしてから、WebApplication プロジェクトを作成しました。アプレットを実行するHTMLコードは次のとおりです。

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <p><applet code="HelloWorld" archive="applet_HelloWorld.jar"  width="590" height="530"></applet></p>
    </body>
</html>

NetBeans からアプレットを実行すると動作します。しかし、HTML コードをダブルクリックして実行すると、ブラウザーから次のメッセージがポップアップ表示されます。

セキュリティ設定により、ローカル アプリケーションの実行がブロックされています。

Internet Explorer と Firefox で試してみましたが、何もしませんでした。

このメッセージは、Java の最後の更新後に表示されるようになりました。問題はどこだ?

4

10 に答える 10

59

Java 7 Update 21 Security Improvements in Detail の言及を読んだ後..

導入された変更により、エンドユーザーが自己署名または未署名の場合、アプリケーションを実行できない可能性が高くなります。

..すべてのアプレットの中で「最も単純な」アプレットである緩いクラス ファイルの場合、これがどのようになるのか疑問に思っていました。

ローカル ファイル システム

ダイアログ: セキュリティ設定により、ローカル アプリケーションの実行がブロックされています
セキュリティ設定により、ローカル アプリケーションの実行がブロックされています

これは、JRE がデフォルトの「高」セキュリティ設定に設定されている場合に、ローカル ファイル システムからロードされるルーズ クラス ファイルで構成されるアプレットに対して表示されるダイアログです。


JRE のわずかな癖により、ポイント 3 でのみ発生したことに注意してください。

  1. アプレット ページをロードして、空のコンソールにつながる壊れたアプレット シンボルを確認します。
    Java 設定を開き、レベルをMediumに設定します。
    ブラウザと Java の設定を閉じます。
  2. アプレット ページをロードして、アプレットを表示します。
    Java 設定を開き、レベルをHighに設定します。
    ブラウザと Java の設定を閉じます。
  3. アプレット ページをロードして、壊れたアプレット シンボルと上記のダイアログを表示します。

インターネット

このサイズ変更可能なアプレットのデモで見られる単純なアプレット (ルース ク​​ラス ファイル) をインターネットからロードすると、次のapplet要素が自慢になります。

<applet
    code="PlafChanger.class"
    codebase="."
    alt="Pluggable Look'n'Feel Changer appears here if Java is enabled"
    width='100%'
    height='250'>
<p>Pluggable Look'n'Feel Changer appears here in a Java capable browser.</p>
</applet>

また、正常にロードされているようです。それを意味する:-

ローカル ファイル システムからロードされたアプレットは、インターネットまたはローカル サーバーからロードされたものよりも厳格なセキュリティ サンドボックスの対象になりました。

セキュリティ設定の説明

Java 7 アップデート 51 以降。

  • 非常に高い:最も安全な設定 - 信頼できる機関から発行された有効期限が切れていない証明書によって識別される Java アプリケーションのみが実行を許可されます。
  • 高 (最小推奨) :信頼できる機関からの証明書によって識別された Java アプリケーションの実行が許可されます。
  • -セキュリティ プロンプトが表示された後、すべての Java アプリケーションの実行が許可されます。
于 2013-04-26T00:50:30.250 に答える
21

今日も同じ問題に直面しましたが、Java コントロール パネルのセキュリティ設定を から に変更することで問題を解決できましHIGHMEDIUM

Java セキュリティ設定を永続的に MEDIUM に設定することは、実際には推奨されません。これにより、悪意のある可能性のあるソフトウェアがシステム上で実行され、ブロックされなくなります。したがって、アプレットを実行した後、設定を HIGH に戻すことをお勧めします。

Java コントロール パネルの場所

コントロールパネルの設定を変更する

于 2013-07-30T01:42:42.300 に答える
12

Linuxを使用している場合、これらの設定は/usr/bin/jcontrol(または現在の Java ツールを取得するためのパス設定) を使用して利用できます。ファイルを編集して、~/.java/deployment/deployment.properties「deployment.security.level=MEDIUM」を設定することもできます。

驚くべきことに、この情報は Oracle の Web サイトからすぐには入手できません。java.sun.com が恋しい...

于 2013-11-15T15:16:27.490 に答える
8

中程度のセキュリティ レベルがない場合は、アプリケーションを例外サイト リストに追加する必要があります( [Java コントロール パネル] → [セキュリティ] タブ)。

  1. ブラウザでアプレットを開き、アドレス バーの内容をコピーします。 アドレスバーに表示されたアプレットのアドレスのスクリーンショット
  2. コントロール パネルJava コントロール パネルセキュリティタブに移動し、Edit Site List...ボタンを押します。 Java コントロール パネルの [セキュリティ] タブのスクリーンショット

  3. ボタンを押しAddてパスを挿入し、Enter キーを押します。 例外サイト リストのスクリーンショット

  4. Continue表示されるセキュリティ警告を 押します。セキュリティ警告のスクリーンショット - ファイルの場所のアラート プロンプト

  5. アプレットを再度開き、Runポップアップ ウィンドウを押すことを忘れないでください。 セキュリティ警告のスクリーンショット

于 2015-02-06T13:35:48.133 に答える
1

練習用に Java アプレットに付属している古い Data Structure and Algs ブックを使用しています。そのため、いくつかのアプレットをローカルに保存して実行する必要がありました。現在、Edge、Chrome、および IE 11 を搭載した Windows 10 OS を実行しています。

アプレットの実行はIE11でのみ許可されているようで、他の人が述べたように、アプレットを例外リストに追加する必要があります。私の問題は、これらをローカルに保存していて、IEで開くと、「C:\ ...」で始まるパスで開かれたため、「file /// ...」を使用してフルパスを追加することでした他の答えは私にはうまくいきませんでした。

修正: したがって、"file:///" を (引用符なしで) 例外サイト リストに追加し、最終的に機能するようにしました。これにより、ローカルに保存されている任意のアプレットを実行することもでき、アプレット パスごとに明示的に例外を追加する必要がなくなります。

プログラムの使用が終了したら、リストから例外を削除し、必要な場合にのみ追加する予定です。

于 2019-03-29T01:43:43.467 に答える
0

Java アプレットはセキュリティ リスクを引き起こすため、最近のほとんどのブラウザでは無効になっています。実行するにはセキュリティを下げる必要があります。そのためのOracleによるガイドがあります。

于 2013-04-24T15:51:00.897 に答える