Essayer d'obtenir une applet signée à travailler dans un navigateur, mais échoue lamentablement

StackOverflow https://stackoverflow.com/questions/1965537

  •  21-09-2019
  •  | 
  •  

Question

J'ai créé un JApplet qui utilise deux bibliothèques externes ( JENA et JUNG ). L'applet fonctionne correctement quand je le lance à partir de l'IDE (en utilisant Eclipse). J'ai créé un fichier jar, signé (depuis l'applet doit lire le texte à partir du disque), créé une page HTML pour tenir l'applet, mais lorsque je tente de l'exécuter dans un navigateur web je reçois la boîte de dialogue d'avertissement de sécurité java et quand je appuyez sur l'onglet exécuter l'ensemble du navigateur semble se bloquer.

Voici le fichier HTML je l'ai écrit:

<html>
   <head>
      <title>Ontology Application</title>
   </head>
   <body>
      <applet code="assignment.Launcher.class" width="1000" height="800" archive="test.jar"></applet>
   </body>
</html>

La classe Launcher contient le init, démarrer, arrêter et détruire les méthodes et toutes les classes utilisées dans le projet sont stockés dans le package d'affectation. test.jar est le fichier jar signé et il est placé dans le même dossier que le fichier HTML.

J'ai suivi les étapes de ce fil pour créer ma clé privée / publique, certificat et de signer le fichier jar: Comment signer et applet (et le faire au travail)

J'ai une liste de questions sur le processus depuis que je ne suis pas sûr au sujet de quelques pas.

Question 1: J'ai créé le fichier jar en utilisant Eclipse (projet Clic droit -> Exporter -> fichier JAR) et conservé les paramètres par défaut. Le fichier jar résultant contient les références des bibliothèques i importées dans le projet? si la réponse est non, comment puis-je inclure les bibliothèques référencées dans le fichier jar?

Question 2: le fichier jar résultant courrais si je double cliquez dessus? car il ne fonctionne pas (Je pense que cela ne fonctionne pas, car aucune classe principale est spécifiée depuis une applet ne dispose pas d'une méthode principale, mais je tiens à corriger)

Question 3: Depuis que je suis en utilisant les bibliothèques externes dans mon applet, ne dois-je signer numérique tous les fichiers jar importés afin de rendre le travail de l'applet? ou la signature du principal fichier jar (contenant mes classes) est suffisant?

Question 4: Si un jour je parviens à faire fonctionner l'applet dans un navigateur, sera la pop boîte de dialogue d'avertissement de sécurité java chaque fois que l'application essaie de lire le texte à partir du disque? ou la boîte de dialogue d'avertissement de sécurité apparaît une seule fois lorsque l'applet chargement?

Merci à l'avance, et désolé pour demander des charges de questions en un seul fil, mais ils sont étroitement liés au sujet:)

Était-ce utile?

La solution

  1. Vous devez utiliser <PARAM NAME="archive" VALUE='applet.jar, external1.jar, external2.jar'> dans votre déclaration applet dans le code HTML. Vous pouvez aussi essayer d'ajouter Class-Path à votre MANIFEST.MF du pot principal (voir )
  2. Non. Sauf si vous avez un Main-Class spécifié dans votre MANIFEST.MF
  3. Oui, dans le cas où les pots externes font certaines opérations sensibles à la sécurité (comme la lecture / écriture du système de fichiers)
  4. Non.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top