Hallo,
zu test Zwecken habe ich mir ein Jar erstellt, das lokal funktioniert. Jetzt möchte ich dieses gerne via Webstart über das Netz zur Verfügung stellen.
Ich habe deshalb versucht mit Hilfe des FAQ Script das Jar aus den .class Dateien signiert zu erstellen zu lassen, aber scheinbar klappt das nicht.
Das Script habe ich erstmal weitest gehend so gelassen wie es ist (JDK Path geändert, lokale Ordner dem jar hinzugefügt), in den Projekt Ordner gelegt und dann ausgeführt (im dem Ordner befindet sich zu dem Zeitpunkt weder ein jar noch eine manifest Datei)
In der Konsole habe ich dann konsequent Signer eingetippt und folgenden output erhalten:
nach der Schlussmeldung ist das Jar augenscheinlich nicht signiert und auch lokal ist es nicht mehr ausführbar.
Weiß zufällig jemand was ich ändern muss?
zu test Zwecken habe ich mir ein Jar erstellt, das lokal funktioniert. Jetzt möchte ich dieses gerne via Webstart über das Netz zur Verfügung stellen.
Ich habe deshalb versucht mit Hilfe des FAQ Script das Jar aus den .class Dateien signiert zu erstellen zu lassen, aber scheinbar klappt das nicht.
Das Script habe ich erstmal weitest gehend so gelassen wie es ist (JDK Path geändert, lokale Ordner dem jar hinzugefügt), in den Projekt Ordner gelegt und dann ausgeführt (im dem Ordner befindet sich zu dem Zeitpunkt weder ein jar noch eine manifest Datei)
Code:
@echo off
rem * SignTool by L-ectron-X (java-forum.org)
rem *
rem * Ablauf beim Signieren
rem *
rem * Erzeugen eines eigenen Schlüssels
rem * Mit KeyTool, einem Werkzeug aus dem SDK, einen neuen Schlüssel erzeugen:
rem * keytool -genkey -alias Signer -dname "cn=Dein Name, c=de"
rem * Gib anschließend Dein Passwort ein.
rem
rem * Erzeugen eines Zertifikats
rem * Mit KeyTool Zertifikat erzeugen:
rem * keytool -selfcert -alias Signer -dname "cn=Dein Name, c=de"
rem * Gib anschließend dein Passwort ein.
rem *
rem * Signieren des Applets
rem * Signieren des Applets mit Hilfe des Tools jarsigner
rem * jarsigner signed.jar Signer
rem * Und noch einmal dein Passwort eingeben.
echo = SignTool.bat =
echo Dieses Tool hilft beim Erzeugen von signierten jar-Dateien
echo.
echo Schritt 1: jar-Dateien erzeugen
echo -------------------------------
rem Pfad zum SDK setzen
rem --> anpassen!
set path=.;D:\Programme\Java\jdk1.5.0_02\bin
echo Manifestdatei erzeugen...
echo Manifest-Version: 1.0>manifest.mf
echo Created-by: SignTool by L-ectron-X>>manifest.mf
if exist *.jar goto key
echo jar-Datei mit angegebenen Parametern erzeugen...
rem --> anpassen!
rem * In diesem Beispiel werden alle .class-Dateien und die Verzeichnisse bilder und etc
rem * mit ins jar-Archiv gepackt.
jar cfmv MeinJar.jar manifest.mf *.class pics props
:key
echo.
echo Schritt 2: Schluessel generieren
echo --------------------------------
rem --> anpassen!
keytool -genkey -alias Signer -dname "cn=Dein Name, c=de"
echo.
echo Schritt 3: Zertifikat erzeugen
echo ------------------------------
rem --> anpassen!
rem -validity 18250 (365 Tage x 50) erzeugt ein 50 Jahre gültiges Zertifikat
keytool -selfcert -validity 3650 -alias Signer -dname "cn=Dein Name, c=de"
if not exist *.jar goto error
echo.
echo Schritt 4: jar-Datei signieren
echo ------------------------------
echo jarsigner erwartet hier nochmals dein Passwort.
rem --> anpassen!
jarsigner MeinJar.jar Signer
echo.
echo Schritt 5: Zertifikat testen
echo ----------------------------
rem --> anpassen!
jarsigner -verify -verbose -certs MeinJar.jar
goto end
:error
echo.
echo Es wurde keine jar-Datei zum Signieren gefunden.
echo Die Erzeugung der jar-Datei ist moeglicherweise fehlgeschlagen.
echo Pruefe deine Eingaben in der Batchdatei!
:end
if not exist manifest.mf goto console
echo.
rem Manifest von Festplatte löschen
del manifest.mf
:console
rem Console für Ausgaben noch geöffnet lassen
echo.
pause
In der Konsole habe ich dann konsequent Signer eingetippt und folgenden output erhalten:
Code:
= SignTool.bat =
Dieses Tool hilft beim Erzeugen von signierten jar-Dateien
Schritt 1: jar-Dateien erzeugen
-------------------------------
Manifestdatei erzeugen...
jar-Datei mit angegebenen Parametern erzeugen...
*.class : Datei oder Verzeichnis existiert nicht.
pics : Datei oder Verzeichnis existiert nicht.
props : Datei oder Verzeichnis existiert nicht.
Manifest wurde hinzugef³gt.
Schritt 2: Schluessel generieren
--------------------------------
Geben Sie das Keystore-Passwort ein: Signer
Geben Sie das Passwort f³r <Signer> ein.
(EINGABETASTE, wenn Passwort dasselbe wie f³r Keystore): Signer
Schritt 3: Zertifikat erzeugen
------------------------------
Geben Sie das Keystore-Passwort ein: Signer
Schritt 4: jar-Datei signieren
------------------------------
jarsigner erwartet hier nochmals dein Passwort.
Enter Passphrase for keystore: Signer
Schritt 5: Zertifikat testen
----------------------------
61 Thu Jun 07 15:08:58 CEST 2007 META-INF/MANIFEST.MF
192 Thu Jun 07 15:09:16 CEST 2007 META-INF/SIGNER.SF
813 Thu Jun 07 15:09:16 CEST 2007 META-INF/SIGNER.DSA
0 Thu Jun 07 15:08:58 CEST 2007 META-INF/
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar is unsigned. (signatures missing or not parsable)
Drücken Sie eine beliebige Taste . . .
nach der Schlussmeldung ist das Jar augenscheinlich nicht signiert und auch lokal ist es nicht mehr ausführbar.
Code:
E:\java\workspace\Puzzel>java -jar MeinJar.jar
Failed to load Main-Class manifest attribute from
MeinJar.jar
Weiß zufällig jemand was ich ändern muss?