Also versuche ich gerade eine Security Certificate
hinzuzufügen, die ich auf Java Keystore
habe. Ich kann dies leicht auf cmd
mit dem Wert innerhalb der Zeichenfolge gespeichert temp
, aber ich möchte dies in meinem Java-Code tun können. Ich verwende den folgenden Code, es zu tun, aber ich bekomme die folgenden Fehler The filename, directory name, or volume label syntax is incorrect.
Der Dateiname, der Verzeichnisname oder die Laufwerkslabelsyntax sind falsch java
String java_Home = System.getProperty("java.home");
java_Home = java_Home + "\\lib\\security";
java_Home = java_Home.trim();
String temp = "..\\..\\bin\\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias RandomKeyName -file C:\\Users\\Chris\\Desktop\\RandomKey.crt";
temp = temp.trim();
String[] commands = {"cmd.exe", "/c", "cd " + java_Home, temp};
ProcessBuilder builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
Process p = builder.start();
builder.command();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
Ich habe diesen Fehler nachgeschlagen und fand auf die folgende Seite der Fehler https://technet.microsoft.com/en-us/library/cc956689.aspx., Aber ich habe immer noch nicht in der Lage gewesen, um das Problem zu lösen. Ich weiß, dass es etwas Kleines ist, aber ich kann es einfach nicht sehen. Kann jemand das beheben?
Nur um das Problem zu debuggen, geben Sie bitte den vollständigen Pfad ersetzen ".. \\ .. \\ bin \\ keytool" und führen Sie das Programm. Wenn der Verzeichnispfad zu keytool Platz enthält, würde der cmd ebenfalls fehlschlagen. – notionquest