Ich kann nicht überprüfen, ob ein Problem vorliegt. Können Sie durchsehen und sehen, was in Ihrer Umgebung anders sein könnte? Ich laufe auf Windows 7 RC.
Lassen Sie uns die Version überprüfen:
C:\temp>java -version
java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode, sharing)
Mal sehen, was in unserem Glas sein werden:
C:\temp>dir /s /b com
C:\temp\com\rdc
C:\temp\com\rdc\test
C:\temp\com\rdc\test\logging.properties
Lassen Sie uns das Glas machen:
C:\temp>jar -cfv test-source.jar com/*
added manifest
adding: com/rdc/(in = 0) (out= 0)(stored 0%)
adding: com/rdc/test/(in = 0) (out= 0)(stored 0%)
adding: com/rdc/test/logging.properties(in = 13) (out= 15)(deflated -15%)
Lassen Sie uns das Glas-Zeichen: Ich verwende ein selbstsigniertes Zertifikat.
C:\temp>jarsigner -signedjar test-dest.jar test-source.jar vinay
Enter Passphrase for keystore:
Warning: The signer certificate will expire within six months.
Mal sehen, was in unserem unterzeichnet Glas ist:
C:\temp>jar tvf test-dest.jar
155 Wed Jul 15 23:39:12 BST 2009 META-INF/MANIFEST.MF
276 Wed Jul 15 23:39:12 BST 2009 META-INF/VINAY.SF
1130 Wed Jul 15 23:39:12 BST 2009 META-INF/VINAY.DSA
0 Wed Jul 15 23:37:18 BST 2009 META-INF/
0 Wed Jul 15 19:44:44 BST 2009 com/rdc/
0 Wed Jul 15 19:44:58 BST 2009 com/rdc/test/
13 Wed Jul 15 23:37:10 BST 2009 com/rdc/test/logging.properties
OK, es erscheint sicherlich unterzeichnet worden zu sein, und es hat keine Klassen. Schauen wir uns die Inhalte von MANIFEST.MF
aussehen:
Manifest-Version: 1.0
Created-By: 1.5.0_14 (Sun Microsystems Inc.)
Name: com/rdc/test/logging.properties
SHA1-Digest: Ob/S+a7TLh+akYGEFIDugM12S88=
und der Inhalt von VINAY.SF
:
Signature-Version: 1.0
Created-By: 1.5.0_14 (Sun Microsystems Inc.)
SHA1-Digest-Manifest-Main-Attributes: 4bEkze9MHmgfBoY+fnoS1V9bRPs=
SHA1-Digest-Manifest: YB8QKIAQPjEYh8PkuGA5G8pW3tw=
Name: com/rdc/test/logging.properties
SHA1-Digest: qXCyrUvUALII7SBNEq4R7G8lVQQ=
Nun lassen Sie uns das Glas überprüfen:
C:\temp>jarsigner -verify -verbose test-dest.jar
155 Wed Jul 15 23:51:34 BST 2009 META-INF/MANIFEST.MF
276 Wed Jul 15 23:51:34 BST 2009 META-INF/VINAY.SF
1131 Wed Jul 15 23:51:34 BST 2009 META-INF/VINAY.DSA
0 Wed Jul 15 23:37:18 BST 2009 META-INF/
0 Wed Jul 15 19:44:44 BST 2009 com/rdc/
0 Wed Jul 15 19:44:58 BST 2009 com/rdc/test/
smk 13 Wed Jul 15 23:37:10 BST 2009 com/rdc/test/logging.properties
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 verified.
Warning: This jar contains entries whose signer certificate will expire within
six months. Re-run with the -verbose and -certs options for more details.
Auf dem Gesicht von ihm, alles erscheint in Ordnung sein. Können Sie überprüfen, ob Ihre Zertifikate abgelaufen sind oder widerrufen wurden? Verwenden Sie selbstsignierte Zertifikate oder echte Zertifikate? Oder habe ich missverstanden, was dein Problem ist?
Können Sie die Befehle anzeigen, die Sie zum Erstellen der signierten JAR-Dateien verwenden? – notnoop