web-dev-qa-db-ja.com

Javaエラー: "あなたのセキュリティ設定はローカルアプリケーションの実行をブロックしています"

私のブラウザから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の最後の更新後に現れ始めました。問題はどこだ?

61
user2279697

読んだ後 Java 7 Update 21セキュリティの詳細な改善 言及..

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

私はこれがどのようにして緩いクラスのファイルになるのだろうかと思っていました - すべての中で「最も単純な」アプレット。

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

Dialog: Your security settings have blocked a local application from running
セキュリティ設定により、ローカルアプリケーションの実行がブロックされました

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


JREのわずかな癖は、のポイント3でそれを作り出しただけであることに注意してください。

  1. アプレットページをロードすると、空のコンソールにつながる壊れたアプレットシンボルが表示されます。
    Java設定を開き、レベルをに設定します。
    ブラウザとJavaの設定を閉じます。
  2. アプレットを表示するには、アプレットページをロードしてください。
    Java設定を開き、レベルをに設定します。
    ブラウザと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アプリケーションは、セキュリティプロンプトを表示した後で実行することができます。
58
Andrew Thompson

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

まあ、これは潜在的に悪意のあるソフトウェアがあなたのシステムで実行され、ブロックされないようにするので、永久に中セキュリティにJavaセキュリティ設定を永久に設定することは実際には推奨されません。そのため、アプレットを実行した後に設定をHIGHに戻すことをお勧めします。

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

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

21
rockstar
  1. コントロールパネルに行く
  2. Javaをダブルクリック
  3. セキュリティタブを開きます
  4. 選択
  5. ---をクリックしてください適用
  6. Webブラウザを再起動します

それでおしまい!

enter image description here

12
Burhan ARAS

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

驚くべきことに、この情報はオラクルのWebサイトからすぐには入手できません。 Java.Sun.comが恋しいです...

12
rommer

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

  1. ブラウザでアプレットを開き、アドレスバーの内容をコピーします。 screenshot of applet's address in the address bar
  2. コントロールパネルJavaコントロールパネルセキュリティタブに移動して Edit Site List... ボタン。 screenshot of Java Control Panel's Security tab

  3. を押す Add ボタンを押してパスを挿入し、Enterを押します。 screenshot of Exception Site List

  4. 押す Continue 表示されるセキュリティ警告に。 screenshot of Security Warning - FILE Location alert Prompt

  5. アプレットをもう一度開き、を押すことを忘れないでください Run ポップアップウィンドウで screenshot of Security Warning

8
Pavlo Zvarych

あなたが私のようにJavaコントロールパネルがセキュリティレベルを高から中に変更するためにセキュリティタブの下にセキュリティスライダーを表示しないなら、これらの指示に従ってください: - Javaの既知のバグ:セキュリティスライダーが見えない


症状:

インストール後、Javaを有効/無効にするためのチェックボックスとセキュリティレベルスライダは、Javaコントロールパネルの[セキュリティ]タブに表示されません。これは7u10以降で起こります。

原因

これは、Java 7u10以降がスタンドアロンインストールのJavaFXと競合するためです。例:Java 7u 5およびJavaFX 2.1.1がインストールされていて、Javaが7u11に更新されている場合、Javaコントロールパネルにチェックボックスまたはセキュリティスライダは表示されません。

解決

Java 7u10以降をインストールする前に、すべてのバージョンのJavaおよびJavaFXをアンインストールすることをお勧めします。
この問題を解決するには、次の手順に従ってください。
1。 Windowsの[アンインストール]コントロールパネルを使用して、すべてのバージョンのJavaとJavaFXを削除します。 Javaのアンインストール に関する指示.
2。 Microsoftのアンインストールユーティリティを実行して、破損したレジストリキーを修復し、プログラムが完全にアンインストールされたり、新しいインストールやアップデートがブロックされたりするのを防ぎます。
3。 Windows オフラインインストーラ パッケージをダウンロードしてインストールします。

3
Rohit

私の問題は、Java 8を使用してportecle.jnlpファイルをローカルに実行することでした。

私にとってうまくいったのは

  1. プログラムの起動 - > Java - > Javaの設定...
  2. [セキュリティ] - > [サイトリストの編集]に移動します。
  3. 追加 http://portecle.sourceforce.net
  4. CMDプロンプトでjavaws portecle.jnlpを開始します。

ステップ3では、file:/// c:/path/portecle.jnlpを追加することもできますが、この追加は私の場合には役に立ちませんでした。

1
Timo Riikonen
  • Java 8以降では、Javaの下の[セキュリティ]タブに「中」のリスク設定はありません。

  • 古いJavaに戻るまで、このエラーが発生し続けるでしょう(ただしJava 7が推奨されていますが、これは終焉を迎えました)。

  • 32ビット版と64ビット版の両方をインストールします。ブラウザは64ビットマシン、64ビットOSの場合でも32ビットです。

0
Vishal Kanaujia

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

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

修正:だから、私は(引用符なしで)、 "file:///"を例外サイトのリストに追加し、ついにそれを動かしました。これにより、ローカルに保存されているアプレットを実行することもできます。また、アプレットパスごとに明示的に例外を追加する必要はありません。

プログラムの使用が終わったら、リストから例外を削除し、必要に応じて追加し直す予定です。

0
eaglei22

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

0
Pradeep Pati