Der Versuch, ein signiertes Applet in einem Browser zu arbeiten, scheitert aber kläglich

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

  •  21-09-2019
  •  | 
  •  

Frage

Ich habe einen Japplet erstellt, der zwei externe Bibliotheken verwendet (JENA und Jung). Das Applet funktioniert korrekt, wenn ich es aus der IDE ausführe (mit Eclipse). Ich habe eine JAR -Datei erstellt, sie signiert (da das Applet Text von der Festplatte lesen muss), eine HTML Drücken Sie den gesamten Browser -Tab.

Hier ist die HTML -Datei, die ich geschrieben habe:

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

Die Launcher -Klasse enthält die Init, Start-, Stopp- und Zerstörungsmethoden und alle im Projekt verwendeten Klassen werden im Zuordnungspaket gespeichert. test.jar ist die signierte JAR -Datei und wird im selben Ordner wie die HTML -Datei platziert.

Ich folgte den Schritten in diesem Thread, um meinen privaten/öffentlichen Schlüssel, mein Zertifikat zu erstellen und die JAR -Datei zu unterschreiben:So unterschreiben und Applet (und bringen Sie es zum Laufen)

Ich habe eine Liste von Fragen zum gesamten Prozess, da ich mir über ein paar Schritte nicht sicher bin.

Frage 1: Ich habe die JAR -Datei mit Eclipse erstellt (mit der rechten Maustaste auf Projekt -> Export -> JAR -Datei) und die Standardeinstellungen beibehalten. Enthält die resultierende JAR -Datei die Referenzbibliotheken, die ich in das Projekt importiert habe? Wenn die Antwort nein ist, wie füge ich dann referenzierte Bibliotheken in die JAR -Datei ein?

Frage 2: Sollte die resultierende JAR -Datei ausgeführt werden, wenn ich doppelt klicke? Da es nicht läuft (ich denke, es funktioniert nicht, weil keine Hauptklasse angegeben ist, da ein Applet keine Hauptmethode hat, aber ich kann korrigiert werden)

Frage 3: Da ich externe Bibliotheken in meinem Applet verwende, muss ich alle importierten JAR -Dateien digital unterzeichnen, um das Applet zum Laufen zu bringen? Oder die Hauptdatei (mit meinen Klassen) signieren ist genug?

FRAGE 4: Wenn ich eines Tages das Applet in einem Browser funktioniert, wird das Dialog der Java Security Warning jedes Mal aufgetaucht, wenn die Anwendung versucht, Text von der Festplatte zu lesen? Oder im Dialogfeld "Sicherheitswarn" wird nur einmal angezeigt, wenn das Applet geladen wird?

Vielen Dank im Voraus und Entschuldigung, dass Sie eine Menge Fragen in einem Thread gestellt haben, aber sie sind eng mit dem Thema verwandt :)

War es hilfreich?

Lösung

  1. Du solltest benutzen <PARAM NAME="archive" VALUE='applet.jar, external1.jar, external2.jar'> in Ihrer Applet -Erklärung in der HTML. Sie können auch versuchen hinzuzufügen Class-Path zu deinem MANIFEST.MF des Hauptglas (siehe hier)
  2. Nein, es sei denn, Sie haben eine Main-Class in Ihrem angegeben MANIFEST.MF
  3. Ja, falls die externen Gläser einige sicherheitsempfindliche Vorgänge ausführen (wie das Lesen/Schreiben des Dateisystems)
  4. Nein.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top