2016-07-19 31 views
3

Ich schrieb einen benutzerdefinierten PKCS11-Provider und jetzt möchte ich es über Jarsigner verwenden.Verwenden benutzerdefinierten PKCS11-Provider mit Jarsigner

Mein Befehl:

jarsigner -verbose -keystore NONE -storetype PKCS11 -providerClass my.provider.class jar_to_sign_on.jar "key_name"

und ich erhalte den folgenden Fehler:

jarsigner error: java.lang.ClassNotFoundException: my.provider.class 

Dies liegt daran, jarsinger nicht mein Provider .jar Implementierung finden.

Wenn ich mt .jar in ... \ Java \ jdk1.8.0_31 \ jre \ lib \ ext stecke, funktioniert es perfekt.

Meine Frage ist: Es gibt eine Möglichkeit, dynamisch meinen Provider .jar zu setzen? (Wie -providerPath in keytool)

Antwort

2

jarsigner hat -J Option, die ihren Wert direkt an den Backing-Java-Prozess übergeben können. Das Problem besteht darin, dass keine Leerzeichen zulässig sind. Sie benötigen also zwei solche Optionen, um einen Klassenpfad zu übergeben. So etwas sollte funktionieren:

jarsigner ... -J-cp -Jmylib.jar

+0

Hallo, 10x. Ich bekomme: Fehler: Hauptklasse konnte nicht gefunden oder geladen werden cp –

+0

Entschuldigung, die korrekte Version sollte 'jarsigner ... -J-cp -Jmylib.jar' sein, damit der' java' Befehl weiß, dass 'cp' eine Option ist , kein Klassenname. –

+0

Nizza: Jetzt bekomme ich Folgendes: Fehler: Konnte Hauptklasse nicht finden oder laden sun.security.tools.jarsigner.Main –