0
동적 인수를 제공하는 런타임 실행 중에 java keytool을 호출하고 싶습니다. 여기지만, 윈도우에서 작동하고 무엇을하지 리눅스 (우분투) 같은 자바 1.6.0 미만 :Linux에서 Runtime.getRuntime(). exec()를 사용하여 Keytool 사용
File f = new File("mykey.jks");
StringBuilder command = new StringBuilder();
command.append(System.getProperty("java.home")
+ System.getProperty("file.separator") + "bin"
+ System.getProperty("file.separator") + "keytool");
command.append(" -genkey");
command.append(" -dname \"cn=foo,ou=bar,o=company,c=CH\"");
command.append(" -alias myProduct");
command.append(" -keypass " + "testtest");
command.append(" -keystore " + f.getAbsolutePath());
command.append(" -storepass " + "testtest");
command.append(" -validity " + 3650);
final Process pr = Runtime.getRuntime().exec(command.toString());
BufferedReader input = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
int exitVal = -1;
try {
exitVal = pr.waitFor();
System.out.println("Exited with error code " + exitVal);
} catch (InterruptedException e) {
// handle
}
리눅스에서 출력이
keytool error: java.io.IOException: Invalid keyword ""CN"
이다 (리눅스 명령 줄에서 명령을하지 실행 자바에서 시작), 코드가 작동합니다. 어떻게 내가 잘못 일을하고 얼마나 것 미리
Runtime.getRuntime().exec(String[])
감사를 사용할 때처럼 String[]
봐! 내가 사용하는 것이 좋습니다
String [] - 표기법을 사용해 보았지만 작동시키지 않았습니다. 어떻게 인수를 정렬해야합니까 (특히 -dname "...."인수)? –
사용 내역을 표시하도록 내 질문을 편집했습니다. – jontro
감사합니다. @Bengt, 괜찮 았어! 나는 항상 String args [] = {arg1, arg2, "-dname dNameArguments"};를 시도했다. –