web-dev-qa-db-fra.com

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

J'essaie d'exécuter ce simple code HelloWorld écrit en Java à partir de mon navigateur ( 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");
    }
}

Je l'ai compilé avec NetBeans , puis j'ai créé un projet WebApplication. Le code HTML qui exécute l'applet est:

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

Si vous exécutez l'applet de NetBeans, cela fonctionne. Mais lorsque je lance le code HTML en double-cliquant dessus, le message suivant apparaît dans le navigateur:

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

J'ai essayé avec Internet Explorer et Firefox mais rien.

Ce message a commencé à apparaître après la dernière mise à jour de Java. Où est le problème?

61
user2279697

Après avoir lu Améliorations de la sécurité dans Java 7 Update 21 en détail mention ..

Avec les modifications introduites, il est fort probable qu'aucun utilisateur final ne puisse exécuter votre application lorsqu'il est auto-signé ou non signé. 

..Je me demandais comment cela irait pour les fichiers de classe en vrac - les applets «les plus simples» de tous.

Système de fichiers local

Dialog: Your security settings have blocked a local application from running
Vos paramètres de sécurité ont bloqué l'exécution d'une application locale.

C’est la boîte de dialogue affichée pour une applet constituée de fichiers de classe en vrac chargés par le système de fichiers local lorsque le JRE est défini sur le paramètre de sécurité «Élevé» par défaut.


Notez qu'un léger caprice de la JRE n'a produit que cela au point 3 de.

  1. Chargez la page d'applet pour voir un symbole d'applet brisé conduisant à une console vide .
    Ouvrez les paramètres Java et définissez le niveau sur Moyen .
    Fermez le navigateur et les paramètres Java.
  2. Chargez la page de l'applet pour voir l'applet .
    Ouvrez les paramètres Java et définissez le niveau sur Elevé .
    Fermez le navigateur et les paramètres Java.
  3. Chargez la page de l'applet pour voir un symbole d'applet brisé & la boîte de dialogue ci-dessus.

L'Internet

Si vous chargez la simple applet (fichier de classe en vrac) vue lors de cette démo redimensionnable applet off the internet - qui dispose d’un élément applet de

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

Il semble aussi se charger avec succès. Impliquant que: - 

Les applets chargés à partir du système de fichiers local sont maintenant soumis à un sandbox de sécurité plus strict que ceux chargés à partir d'Internet ou d'un serveur local.

Descriptions des paramètres de sécurité

À partir de Java 7 mise à jour 51.

  • Très élevé: paramètre le plus sécurisé: seules les applications Java identifiées par un certificat non expiré émanant d'une autorité de confiance seront autorisées à s'exécuter.
  • Elevé (minimum recommandé): les applications Java identifiées par un certificat provenant d'une autorité de confiance seront autorisées à s'exécuter.
  • Medium - Toutes les applications Java seront autorisées à s'exécuter après la présentation d'une invite de sécurité.
58
Andrew Thompson

J'ai rencontré le même problème aujourd'hui et j'ai pu le résoudre en modifiant les paramètres de sécurité du panneau de configuration Java de HIGH à MEDIUM.

Il est déconseillé de définir de manière permanente le paramètre de sécurité Java sur MOYEN, car cela permettra aux logiciels malveillants potentiels de s'exécuter sur votre système sans être bloqués. Je suggère donc qu'après avoir exécuté votre applet, vous souhaitiez peut-être redéfinir le paramètre sur HIGH.

Emplacement du panneau de configuration Java

Modifier les paramètres du panneau de configuration

21
rockstar

Si vous utilisez Linux , ces paramètres sont disponibles avec /usr/bin/jcontrol (ou votre paramètre de chemin pour obtenir les outils Java actuels). Vous pouvez également éditer les fichiers dans ~/.Java/deployment/deployment.properties pour définir "deployment.security.level = MEDIUM".

Étonnamment, ces informations ne sont pas facilement disponibles sur le site Web Oracle. Java.Sun.com me manque ...

12
rommer
  1. Aller au panneau de configuration
  2. Double-cliquez sur Java
  3. Ouvrez l'onglet Sécurité
  4. Sélectionnez Moyenne
  5. Cliquez sur Appliquer
  6. Redémarrez votre navigateur Web 

C'est tout!

enter image description here

11
Burhan ARAS

Si vous n'avez pas de niveau de sécurité moyen, vous devez alors ajouter votre application à la liste des sites d'exception (. Panneau de configuration Java Onglet Sécurité ).

  1. Ouvrez votre applet dans un navigateur et copiez le contenu de votre barre d'adresse. screenshot of applet's address in the address bar
  2. Allez à Panneau de configuration Panneau de configuration Java Sécurité et appuyez sur le bouton de navigation Edit Site List... bouton. screenshot of Java Control Panel's Security tab

  3. Appuyez sur la Add bouton, insérez votre chemin et appuyez sur Entrée. screenshot of Exception Site List

  4. Presse Continue sur l'avertissement de sécurité qui apparaît. screenshot of Security Warning - FILE Location alert Prompt

  5. Ouvrez à nouveau l'applet et n'oubliez pas d'appuyer sur Run sur la fenêtre pop-up. screenshot of Security Warning

8
Pavlo Zvarych

Si vous êtes comme moi et que son panneau de configuration Java n’affiche pas le curseur de sécurité sous l’onglet Sécurité pour modifier le niveau de sécurité de élevé à moyen, suivez les instructions ci-dessous: Bug connu de Java: curseur de sécurité non visible .


Symptômes:

Après l'installation, la case à cocher pour activer/désactiver Java et le curseur de niveau de sécurité n'apparaissent pas dans l'onglet Sécurité du panneau de configuration Java. Cela peut se produire avec 7u10 et plus. 

Cause

Ceci est dû à un conflit entre Java 7u10 et les versions ultérieures et les installations autonomes de JavaFX. Exemple: Si Java 7u5 et JavaFX 2.1.1 sont installés et si Java est mis à jour en 7u11, le panneau de configuration Java n'affiche pas la case à cocher ou le curseur de sécurité.

Résolution

Il est recommandé de désinstaller toutes les versions de Java et JavaFX avant d'installer Java 7u10 et supérieur.
Veuillez suivre les étapes ci-dessous pour résoudre ce problème.
1. Supprimez toutes les versions de Java et JavaFX via le Panneau de configuration de la désinstallation de Windows. Instructions sur désinstaller Java .
2. Exécutez l'utilitaire de désinstallation de Microsoft pour réparer les clés de registre corrompues empêchant la désinstallation complète des programmes ou bloquant les nouvelles installations et mises à jour.
3. Téléchargez et installez le programme d'installation Windows en mode hors connexion package.

3
Rohit

Mon cas de problème était d’exécuter le fichier portecle.jnlp localement à l’aide de Java8.

Ce qui a fonctionné pour moi était

  1. Démarrer des programmes -> Java -> Configurer Java ...
  2. Allez dans Sécurité -> Éditer la liste de sites ...
  3. Ajouter http://portecle.sourceforce.net
  4. Démarrer javaws portecle.jnlp dans l'invite CMD

À l'étape 3, vous pouvez également essayer d'ajouter le fichier: /// c: /path/portecle.jnlp, mais cette addition n'a pas aidé mon cas.

1
Timo Riikonen
  • À partir de Java 8, il n'y a pas de paramètre de risque "moyen" dans l'onglet Sécurité sous Java.

  • Vous continuerez à avoir cette erreur jusqu'à ce que vous reveniez à l'ancienne version de Java (Java 7 suggéré, il est cependant en fin de vie).

  • Installez les versions 32 bits et 64 bits car les navigateurs sont toujours en version 32 bits, même sur un système d'exploitation 64 bits et une machine

0
Vishal Kanaujia

J'utilise un ancien livre de structure de données et d'algs fourni avec les applets Java. Je devais donc stocker et exécuter des applets localement. J'utilise actuellement le système d'exploitation Windows 10 avec Edge, Chrome et IE 11.

L'exécution des applets semble être autorisée uniquement dans IE11 et, comme d'autres l'ont mentionné, vous devez ajouter l'applet à la liste des exceptions. Mon problème était depuis que je stocke ces localement, et les ouvre dans IE, il a ouvert avec le chemin commençant par "C:\..." Ajoutant le chemin complet en utilisant, "fichier /// ..." comme mentionné dans l'un des les autres réponses n'ont pas fonctionné pour moi.

Le correctif: Alors, je viens d’ajouter (sans les guillemets), "fichier: ///" à la liste des sites d’exception et je l’ai enfin fait fonctionner. Cela me permet également d'exécuter n'importe quelle applet stockée localement, et je n'ai pas à ajouter explicitement une exception pour chaque chemin d'applet.

Je prévois de supprimer l'exception de la liste une fois l'utilisation des programmes terminée et de la rajouter uniquement si nécessaire.

0
eaglei22

Les applets Java créent un risque de sécurité et sont donc désactivés dans la plupart des navigateurs modernes. Vous devez baisser la sécurité pour l'exécuter. Il existe un guide par Oracle pour cela.

0
Pradeep Pati