Так что я сейчас пытаюсь добавить Security Certificate
, который у меня есть на Java Keystore
. Я могу сделать это легко на cmd
, используя значение, хранящееся внутри String temp
, но я хочу, чтобы это можно было сделать в моем Java-коде. Я использую следующий код, чтобы сделать это, но я получаю следующую ошибку The filename, directory name, or volume label syntax is incorrect.
Неверное имя файла, имя каталога или тома. 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);
}
Я просмотрел эту ошибку и нашел следующую страницу на ошибках https://technet.microsoft.com/en-us/library/cc956689.aspx., Но я до сих пор не в состоянии решить проблему. Я знаю, что это что-то маленькое, но я просто не вижу его. Кто-нибудь знает, как это исправить?
Чтобы отладить проблему, предоставьте полный путь, заменив «.. \\ .. \\ bin \\ keytool» и выполнив программу. Если в пути к директории keytool есть пробел, cmd также не удался. – notionquest