Vollständige Version anzeigen : [Tutorial] Jar-Archive erstellen und dieses signieren (Applet)


harry1526
07.02.2009, 14:19

Hi ; all,

ich wollte mal hier ein Tut veröffentlichen, wie man eine jar-Archive erstellt und dieses dann signiert.

Die Ordnerstruktur sieht wie folgt aus:

|------ bin
|------ database;class
|------ start;class
|------ pic;gif
|------ mysql-connector-java-5;1;7-bin;jar

Der Ordner bin beinhaltet alle class-Dateien, die für das Projekt benötigt werden. Das jar-Arhcive mysql-connector-java-5;1;7-bin;jar ist für die Verbindung zu einer Datenbank und das pic;gif ist ein Bild, welches für das Applet benötigt wird.

Nun wollen wir all diese Sachen zu einen Archive zusammenfügen. Wie kann man dies machen.
Bevor wir das eigentliche jar-Archive erstellen können, müssen wir das andere erstmal entpacken.
Dazu gehen wir in die Konsole und geben folgenden Befehl ein:
jar xf mysql-connector-java-5;1;7-bin;jar
Wie man nun sieht, wurden weitere Ordner erstellt und zwar folgende: com, META-INF und org

|------bin
|------ database;class
|------ start;class
|------ pic;gif
|------ mysql-connector-java-5;1;7-bin;jar
|------ com --> diese beinhalten noch weitere Unterordner
|------ META-INF --> diese beinhalten noch weitere Unterordner
|------ org --> diese beinhalten noch weitere Unterordner

Jetzt haben wir alle Ordner, die wir nun zu einem jar-Archive zusammenfassen wollen. Mit dem folgenden Befehl in der Konsole erzeugen wir ein jar-Archive:
jar -cfv tester;jar bin\database;class bin\start;class grandhotel;gif com META-INF org

HINWEIS
Falls ihr den Hinweis bekommt, dass Windows diesen Befehl nicht kennt, dann müsst ihr den vollen Pfad angegeben. Die Tools befinden sich in dem Ordner jdkx;x;x_xx\bin\
Für Windows unter C:\Programme\Java\jdkx;x;x_xx\bin\
Für Vista unter "C:\Progam Files\Java\ jdkx;x;x_xx\bin\"


Der Befehl ist wie folgt aufgebaut:
• jar --> ist der Befehl zum erzeugen eines jar-Archive
• -cfv --> c == create jar Archive f == jar-Achrive-Name ist mit angegeben v == verbose, dient zur Debugausgabe
• tester;jar --> ist der Name des zuerstellenden jar-Archive
• die weiteren Parameter sind die Klassen, welche man zu jar-Archive haben will


Damit wäre die erste Aufgabe erledigt. Nun können wir dieses Applet testen. Wir legen uns dazu eine *;html-Datei an. Die folgenden Inhalt hat:

<html>
<head>
<title>Tester</title>
</head>
<body>
Hier kann man noch was angegeben usw;<br>
<applet code="bin;start;class" archive="tester;jar" width=800 height=800>
Oops! Geht nicht mit diesem Browser.
</applet>
</body>
</html>

Uns interessiert nur die Zeile, mit dem Tag-applet. Der Parameter code gibt die Main-Class an. Archive ist logisch, das ist das Archive, welches wir uns gerade angelegt haben.
Nun können wir die HTML-Datei öffnen und wie man sieht es „funktioniert“. Aber der Schein trügt. Denn wenn wir unsere Interaktion auslösen wollen, dann bekommen wir nichts angezeigt.
Schauen wir uns mal den Output der Java-Console (im Firefox unter Extra  Java Console. Falls ihr es nicht habt, dann unter Java-Console (;addons;mozilla~org/en-US/firefox/addon/5403) herunterladen) an.

{bild-down: ;;;xup~in/tn/2009_02/17345031;jpeg}
(;;;xup~in/dl,17345031/Unbenannt;jpg/)

In der ersten Zeile wird uns schon alles gesagt. Das Applet wird nicht richtig ausgeführt, da es nicht signiert worden ist und gegen die Sicherheitsrichtlinien verstößt. Somit müssen wir dies noch machen.
Hierzu müssen wir als erstes ein Zertifikat erstellen, das mit folgenden Befehl wird dieses erstellt:
keytool -genkey -validity 365 -keyalg rsa -alias meinSchlüssel
Der Parameter -validity 365 gibt, wie lange das Zertifikat gültig ist. Dieser wird in Tagen angegeben.
Beim Ausführen des Befehls wird man nach verschiedenen Sachen gefragt, wie zum Beispiel Name, Organisation, Herkunftsland und weitere. Diese werden dann später angezeigt, wenn das Aplett ausgeführt wird.
Danach exportiert man diese Werte in ein Zertifikat und zwar mit folgendem Befehl:
keytool -export -alias meinSchlüssel -file meinZerti;crt
Das hat den Vorteil, wenn man mehrere jar-Archive mit dem gleichen Zertifikat signieren möchte.

Jetzt kann man das jar-Archive signieren:
jarsigner tester;jar meinSchlüssel

Um die Signierung zu überprüfen, lässt sich der jarsigner abermals mit veränderten Parametern verwenden:
jarsigner -verify -verbose -certs tester;jar


HINWEIS
Es kann passieren, dass während des signieren des Archives folgende Fehlermeldung auftritt:
jarsigner: attempt to rename tester;jar to tester;jar;orig failed
Dies bedeutet, dass das Archive von irgendeinem Prozess noch verwendet wird. Meistens hilft es, den Firefox zu schließen. ;-)

Nun können wir das Applet erneut starten und als erstes kommt ein Bildschirm, der den User fragt, ob er das Applet ausführen darf.
Wenn alles richtig gemacht worden ist, müssten auch alle Interaktionen ausgeführt werden.
Falls es doch nicht geht, dann sollte man noch mal in der Java-Console nachschauen, ob es irgendeine Exception gibt.

Viele Spaß damit!!!

Quellen:
Using JAR Files: The Basics (The Java&trade; Tutorials
Deployment Packaging Programs in JAR Files) (;java;sun~com/docs/books/tutorial/deployment/jar/basicsindex;html)
(;;;molehillrocker~com/tutorials/2-java-tutorials/3-signieren-einer-jar-datei)

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [Tutorial] Jar-Archive erstellen und dieses signieren (Applet)
  • Kann wer so ein Tutorial erstellen?
    Hi. Ich wollte fragen, ob jemand ein alleszerstörendes Video-Tut erstellen könnte, in denem Sigs gemacht werden (_eine_ natürlich), die ziemlich krass sind (nicht solche, die ICH zB drin hab). Ich hab solch eine gefunden, jedoch ist sie unscharf und kann ich kann kaum was erkennen und da ich [...]

  • Szene Archive ~ We Archive the Scene
    Wir stellen ;i;imgur~com/X4KYycW;png vor.. Die Szene freut sich ja immer wieder gerne auf neue Projekte die im Netz erscheinen. (Humor off) Jedenfalls haben wir mit dem Gedanken das Projekt gestartet, das archivieren diverser Inhalte aus dem Netz. Der Grundstein beruht auf Szene- & Allround Tal [...]

  • Kann auf der Externen keine Winrar Archive erstellen
    Hey! Hab iwie das Problem, dass ich auf meiner externen Festplatte in letzter Zeit keine rars erstellen kann. Bekomm ständig die Fehlermeldung, er könne "File X nicht umbenennen". Bisschen google gebnutzt, aber nicht wirklich schlauer geworden. Ist schon nervig, immer alles auf den PC zu ziehe [...]

  • Mit WinRAR Parts erstellen (Archive-Splitten)
    Hey Forum! Hier mal mein Tut wie man PARTs einer großen Datei macht, um sie dann auf RS, UP usw. zu laden. Was du brauchst: - WinRAR - Die Datei die du uppen willst - Ein Gehirn ( sollte vorhanden sein, wenn nicht einfach mal in der Pathologie des Vertrauens nachfragen ) Los gehts! (Ac [...]



raid-rush.ws | Imprint & Contact pr