* Quoi * Java "les paramètres de sécurité ont bloqué l'exécution d'une application locale"?


J'ai une applet de test simple qui est censée dessiner un petit triangle (et fonctionne bien en utilisant appletviewer Triangle.class à partir de la ligne de commande), mais quand j'essaie de voir Triangle.htm dans mon navigateur, je reçois ce message (de Java lui-même, pour autant que je sache, pas mon Firefox ou Chrome):

"Vos paramètres de sécurité ont bloqué l'exécution d'une application locale."

Cependant, je ne peux pas comprendre quels paramètres modifier. J'ai simplement essayé de mettre les paramètres généraux au plus bas (appelé "moyen" ha ha qu'est-ce que c'est que les tailles de tasse dans un café Oh Oh. Droit.) mais cela n'a pas fonctionné, et si la solution est enterrée quelque part dans les options les plus avancées, ce n'est douloureusement pas évident pour moi... :/

Cette question sonnait comme mon problème:

Erreur Java:"Vos paramètres de sécurité ont bloqué l'exécution d'une application locale"

Mais l'affiche originale disait: "Résolu: le problème était que le compilateur utilisait JDK6 au lieu de JDK7."

Et j'ai vérifié que j'avais la dernière version avant de recompiler le fichier de classe:

> java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)

> javac Triangle.java

Quoi qu'il en soit, quelqu'un peut-il voir s'il a le même problème et me dire comment vous le corrigez?

Pour faciliter la reproduction, c'est la source du fichier de classe:

Triangle.java:

import java.awt.*;
import java.applet.Applet;
public class Triangle extends Applet {
    public void paint (Graphics g){
        int bottomX=80;
        int bottomY=200;
        int base=100;
        int height=100;
        g.drawLine(bottomX,bottomY,bottomX+base,bottomY);
        g.drawLine(bottomX+base,bottomY,bottomX+base/2,bottomY-height);
        g.drawLine(bottomX+base/2,bottomY-height, bottomX,bottomY);
    }
}

Et c'est le htm qui est dans le dossier avec le fichier de classe:

Triangle.htm:

<applet code="Triangle.class" width=400 height=400></applet>
Author: Community, 2013-07-12

2 answers

Je viens d'essayer votre code en utilisant Java version 1.7.0_25-b17. Cela fonctionne très bien dans le navigateur sur les deux paramètres inférieurs vus ici.

Panneau de configuration Java-Onglet Sécurité

Pour qu'il fonctionne avec le niveau de sécurité le plus élevé, il doit être placé dans un fichier Jar et signé à l'aide d'un certificat valide.

 4
Author: Andrew Thompson, 2013-07-12 13:39:30

Il a été officiellement déclaré (réponse d'Oracle à l'e-mail de mon équipe scolaire) que certains restes plus anciens de machines virtuelles peuvent en fait provoquer des alertes de sécurité avec des applets même si vous définissez les paramètres de sécurité au minimum absolu (l'avez fait plusieurs fois avec mon applet). Je suppose que c'est un travail d'école/d'étude (car c'est une applet), il vaut donc probablement la peine d'essayer de l'exécuter directement par appletviewer.

 0
Author: 3yakuya, 2013-07-12 12:26:22