web-dev-qa-db-de.com

Java-Fehler: "Ihre Sicherheitseinstellungen haben die Ausführung einer lokalen Anwendung blockiert"

Ich versuche diesen einfachen HelloWorld-Code, der in Java geschrieben ist, in meinem Browser auszuführen ( 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");
    }
}

Ich habe es mit NetBeans kompiliert und dann ein WebApplication-Projekt erstellt. Der HTML -Code, der das Applet ausführt, lautet:

<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>

Wenn Sie das Applet von NetBeans ausführen, funktioniert es. Wenn ich den HTML-Code durch Doppelklick ausführen, wird die folgende Meldung im Browser angezeigt:

Ihre Sicherheitseinstellungen haben die Ausführung einer lokalen Anwendung blockiert. 

Ich habe mit Internet Explorer und Firefox aber nichts versucht.

Diese Meldung wurde nach dem letzten Java-Update angezeigt. Wo ist das Problem?

61
user2279697

Nach dem Lesen von Java 7 Update 21 Sicherheitsverbesserungen im Detail Erwähn ..

Mit den eingeführten Änderungen ist es sehr wahrscheinlich, dass kein Endbenutzer Ihre Anwendung ausführen kann, wenn diese entweder selbstsigniert oder unsigniert sind. 

Ich wunderte mich, wie dies für lose Klassendateien - die 'einfachsten' Applets von allem, zutrifft.

Lokales Dateisystem

Dialog: Your security settings have blocked a local application from running
Ihre Sicherheitseinstellungen haben die Ausführung einer lokalen Anwendung blockiert

Dies ist der Dialog für ein Applet, das aus lockeren Klassendateien besteht, die aus dem local-Dateisystem geladen werden, wenn die JRE auf die Standardeinstellung für die Sicherheitseinstellung "Hoch" gesetzt ist.


Beachten Sie, dass eine geringfügige Eigenart der JRE nur die auf Punkt 3 von.

  1. Laden Sie die Applet-Seite, um ein defektes Applet-Symbol anzuzeigen, das zu einer leeren Konsole führt.
    Öffnen Sie die Java-Einstellungen und setzen Sie die Ebene auf Medium .
    Schließen Sie die Browser- und Java-Einstellungen.
  2. Laden Sie die Applet-Seite, um das Applet anzuzeigen .
    Öffnen Sie die Java-Einstellungen und setzen Sie die Ebene auf High .
    Schließen Sie die Browser- und Java-Einstellungen.
  3. Laden Sie die Applet-Seite, um ein defektes Appletsymbol anzuzeigen und das obige Dialogfeld.

Internet

Wenn Sie das einfache Applet (lose Klassendatei) laden, das unter diesem resettierbares Applet-Demo aus dem internet zu sehen ist, das ein applet-Element enthält:

<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>

Es scheint auch erfolgreich zu laden. Implizieren das:- 

Applets, die aus dem lokalen Dateisystem geladen werden, unterliegen jetzt einer strengeren Sicherheits-Sandbox als die aus dem Internet oder einem lokalen Server geladenen.

Beschreibungen der Sicherheitseinstellungen

Ab Java 7 Update 51.

  • Very High: Sicherste Einstellung - Nur Java-Anwendungen, die von einem nicht abgelaufenen Zertifikat einer vertrauenswürdigen Instanz identifiziert wurden, können ausgeführt werden.
  • High (Minimum empfohlen): Java-Anwendungen, die von einem Zertifikat einer vertrauenswürdigen Instanz identifiziert wurden, können ausgeführt werden.
  • Medium - Alle Java-Anwendungen können nach der Eingabe einer Sicherheitsabfrage ausgeführt werden.
58
Andrew Thompson

Ich war heute mit demselben Problem konfrontiert und konnte dieses Problem beheben, indem ich die Sicherheitseinstellungen in der Java-Systemsteuerung von HIGH in MEDIUM änderte.

Es ist nicht wirklich empfehlenswert, die Java-Sicherheitseinstellung dauerhaft auf MEDIUM zu setzen, da potenziell schädliche Software auf Ihrem System ausgeführt und nicht blockiert werden kann. Ich empfehle Ihnen daher, nach der Ausführung Ihres Applets die Einstellung wieder auf HIGH zu ändern.

Position der Java-Systemsteuerung

Ändern Sie die Einstellung der Systemsteuerung

21
rockstar

Wenn Sie Linux verwenden, sind diese Einstellungen mit /usr/bin/jcontrol (oder Ihrer Pfadeinstellung zum Abrufen der aktuellen Java-Tools) verfügbar. Sie können die Dateien auch in ~/.Java/deployment/deployment.properties bearbeiten, um "deploy.security.level = MEDIUM" festzulegen.

Überraschenderweise sind diese Informationen nicht ohne Weiteres auf der Oracle-Website verfügbar. Ich vermisse Java.Sun.com ...

12
rommer
  1. Gehen Sie zur Systemsteuerung
  2. Doppelklicken Sie auf Java
  3. Öffnen Sie die Registerkarte Security
  4. Wählen Sie Medium
  5. Klicken Sie auf Übernehmen
  6. Starten Sie Ihren Webbrowser neu 

Das ist es!

enter image description here

11
Burhan ARAS

Wenn Sie keine mittlere Sicherheitsstufe haben, sollten Sie Ihre Anwendung der Ausnahmesite-Liste hinzufügen ( Java-Systemsteuerung Registerkarte Sicherheit .

  1. Öffnen Sie Ihr Applet in einem Browser und kopieren Sie den Inhalt Ihrer Adressleiste. screenshot of applet's address in the address bar
  2. Gehen Sie zu Systemsteuerung Java-Systemsteuerung Sicherheit und drücken Sie die Edit Site List... Taste. screenshot of Java Control Panel's Security tab

  3. Drücken Sie die Add Geben Sie Ihren Pfad ein und drücken Sie die Eingabetaste. screenshot of Exception Site List

  4. Drücken Sie Continue auf die Sicherheitswarnung, die angezeigt wird. screenshot of Security Warning - FILE Location alert Prompt

  5. Öffne das Applet erneut und vergiss nicht zu drücken Run im Popup-Fenster. screenshot of Security Warning

8
Pavlo Zvarych

Wenn Sie wie ich sind, dessen Java Control Panel unter Sicherheitsregisterkarte keinen Sicherheitsschieberegler anzeigt, um die Sicherheitsstufe von Hoch auf Mittel zu ändern, befolgen Sie diese Anweisungen: Bekannter Java-Fehler: Sicherheitsschieberegler nicht sichtbar .


Symptome:

Nach der Installation werden das Kontrollkästchen zum Aktivieren/Deaktivieren von Java und der Schieberegler für die Sicherheitsstufe nicht auf der Registerkarte "Sicherheit" der Java-Systemsteuerung angezeigt. Dies kann bei 7u10 und darüber auftreten. 

Ursache

Dies liegt an einem Konflikt, den Java 7u10 und höher bei Standalone-Installationen von JavaFX hat. Beispiel: Wenn Java 7u5 und JavaFX 2.1.1 installiert sind und Java auf 7u11 aktualisiert wird, zeigt die Java-Systemsteuerung das Kontrollkästchen oder den Sicherheitsschieberegler nicht an.

Auflösung

Es wird empfohlen, alle Versionen von Java und JavaFX vor der Installation von Java 7u10 und höher zu deinstallieren.
Bitte befolgen Sie die nachstehenden Schritte, um dieses Problem zu beheben.
1. Entfernen Sie alle Versionen von Java und JavaFX über die Windows-Deinstallations-Systemsteuerung. Anweisungen zum Deinstallieren von Java .
2. Führen Sie das Microsoft-Deinstallationsprogramm aus, um beschädigte Registrierungsschlüssel zu reparieren, die verhindern, dass Programme vollständig deinstalliert werden oder neue Installationen und Updates blockieren.
3. Laden Sie das Windows Offline-Installationsprogramm herunter und installieren Sie es.

3
Rohit

Mein Problemfall war, die Datei portecle.jnlp lokal mit Java8 auszuführen.

Was für mich funktioniert hat war

  1. Start Programme -> Java -> Java konfigurieren ...
  2. Gehen Sie zu Sicherheit -> Site-Liste bearbeiten ...
  3. Hinzufügen von http://portecle.sourceforce.net
  4. Starten Sie javaws portecle.jnlp in der CMD-Eingabeaufforderung

In Schritt 3 können Sie auch versuchen, die Datei: /// c: /path/portecle.jnlp hinzuzufügen. Dieser Zusatz hat jedoch in meinem Fall nicht geholfen.

1
Timo Riikonen
  • Beginnend mit Java 8 gibt es auf der Registerkarte "Sicherheit" unter Java keine "mittleren" Risikoeinstellungen

  • Sie erhalten diesen Fehler so lange, bis Sie zu älterem Java zurückkehren (vorgeschlagenes Java 7, obwohl es das Ende seines Lebens erreicht hat).

  • Installieren Sie sowohl die 32-Bit- als auch die 64-Bit-Version, da die Browser auch auf einem 64-Bit-Computer mit 64-Bit-Betriebssystem immer noch 32-Bit sind

0
Vishal Kanaujia

Ich verwende ein älteres Data Structure and Algs-Buch, das zum Üben mit Java-Applets geliefert wird. Also musste ich einige Applets lokal speichern und ausführen. Ich verwende derzeit Windows 10 mit Edge, Chrome und IE 11.

Das Ausführen von Applets ist anscheinend nur in IE11 zulässig. Wie bereits erwähnt, müssen Sie das Applet der Ausnahmeliste hinzufügen. Mein Problem bestand darin, dass ich diese lokal speichere und sie im IE öffne. Der Pfad begann mit "C:\...". Den vollständigen Pfad fügte ich mit "file /// ..." hinzu, wie in einem von beschrieben Die anderen Antworten haben bei mir nicht funktioniert.

Das Update: Also habe ich (ohne die Anführungszeichen) "file: ///" zur Ausnahmeseitenliste hinzugefügt und es endlich zum Laufen gebracht. Auf diese Weise kann ich auch jedes lokal gespeicherte Applet ausführen und muss nicht explizit für jeden Applet-Pfad eine Ausnahme hinzufügen.

Ich plane, die Ausnahme von der Liste zu entfernen, sobald ich mit den Programmen fertig bin, und sie nur bei Bedarf wieder hinzuzufügen.

0
eaglei22

Java-Applets stellen ein Sicherheitsrisiko dar und sind daher in den meisten modernen Browsern deaktiviert. Sie müssen die Sicherheit verringern, um es auszuführen. Es gibt einen Guide von Oracle dafür.

0
Pradeep Pati