2016-09-08 7 views
0

Ich schreibe eine Java-Swings-Anwendung. Bei der Anwendung benötigen wir eine Zertifikatsdatei zu halten, einen benutzerdefinierten SSL-KontextJava verweisen eine Datei innerhalb des Projekts von Runnable Jar

SSLContext sslcontext = SSLContexts.custom() 
.loadTrustMaterial(new File("certs\\cacerts"), 
    "password".toCharArray(), new TrustSelfSignedStrategy()) 
.build(); 

ich den Ordner “certs” innerhalb des Projektes erstellt habe, zu erstellen und die Datei “cacerts” in diesem Ordner gespeichert. Das funktioniert gut, wenn ich die App von Eclipse aus starte. Aber wenn ich die App als ausführbare JAR-Datei packe, erhält Java die Datei "certs \ cacerts" nicht. Es wird eine nicht gefundene Ausnahme ausgelöst.

Aber wenn ich ändere die “\\”-“//” es funktioniert gut, wenn ich den einen Ordner “certs” bin zu halten, wo die jar-Datei befindet und speichern Sie die “cacerts“Datei in dem. Der Code wird wie unten sein aussehen,

SSLContext sslcontext = SSLContexts.custom() 
.loadTrustMaterial(new File("certs//cacerts"), 
    "password".toCharArray(), new TrustSelfSignedStrategy()) 
.build(); 
+0

Eine .jar-Datei ist eine einzelne Datei. Einträge in einer .jar-Datei sind keine separaten Dateien, daher können Sie sie nicht mit Dateiobjekten lesen. Siehe http://stackoverflow.com/documentation/java/2433/resources-on-classpath. – VGR

Antwort

Verwandte Themen