2017-08-08 1 views
0

Ich versuche Zertifikat zu generieren mit OpenSSL in einer BAT-Datei Befehle und von Java-Code aufrufen -Batch-Datei der Ausführung mit dem Parameter - [Java - OpenSSL]

String loc = "C:\\Users\\xyz\\Desktop\\myFolder\\bin"; 
String subject = "/C=GB/ST=London/L=London/O=Global Security/OU=software/CN=blah/[email protected]"; 
List<String> cmds = Arrays.asList("cmd.exe", "/C", "start C:/Users/xyz/Desktop/myBat.bat", loc, subject); 
ProcessBuilder builder = new ProcessBuilder(cmds);   
Process proc = builder.start(); 

mybat.bat

set root=%1 
cd /D %root% 
set arg2=%2 
openssl req -new -out server.csr -key server.key -config openssl.cnf -subj %arg2% 

Betreff aus Java-Code erlaubt mir nicht, Fledermaus-Datei auszuführen? Ich versuchte, Schrägstrich, aber gleichen Fehler zu entkommen.

So übergeben Sie -subj [openSSL] über Java-Code an Bat-Datei.

Hinweis - dieses feines [Fest codiert]

openssl req -new -out server.csr -key server.key -config openssl.cnf -subj "/C=GB/ST=London/L=London/O=Global Security/OU=software/CN=blah/[email protected]" 

Antwort

1

die Sie interessieren, 3 Argumente für Ihren Prozess, die dritten Bedürfnisse ein einziger Befehl sein, die zu cmd.exe weitergegeben werden, und in diesem Befehl arbeiten Sie um den Betreff:

List<String> cmds = Arrays.asList(
     "cmd.exe", 
     "/C", 
     "start C:/Users/xyz/Desktop/myBat.bat " + loc + " \"" + subject + "\"" 
); 
+0

set arg2 =/C, wird in der Befehlszeile ausgeführt, scheint wie "=" wird nicht geparst. – NewBee

+0

Oh, ich habe den Inhalt von 'subject' vermisst. Kannst du es mit dem Zitat wie oben beschrieben versuchen? –

+0

Das Hinzufügen eines anderen Zitats hat gut funktioniert, danke – NewBee

Verwandte Themen