저는 ProcessBuilder
을 처음 사용합니다. 오늘 나는 "java -version"을 실행하는 간단한 애플리케이션을 작성하고 있지만 항상 IOException
을 얻었다. IOException이 발생했습니다. CreateProcess 오류 = 2, 지정한 파일을 찾을 수 없습니다.
ProcessBuilder pb = new ProcessBuilder("java -version");
try {
Map<String, String> map = pb.environment();
Process p = pb.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
예외
, 나는JAVA_HOME
이 환경 변수에 설정되어 있는지 확인 할 수
java.io.IOException: Cannot run program "java -version": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
아래로 던져 내 일식은 너무 JDK를 가리키고 있습니다.
JAVA_HOME=C:\JDK1.8.0_66-X64.
누구든지 내 코드/설정에 어떤 문제가 있는지 알 수 있습니까?
'ProcessBuilder'를 구성 할 때'java ''와''-version "'을 별도의 명령 인수로 전달해야합니다. – JonK
ProcessBuilder는 array의 첫 번째 요소를 취하여이를 프로그램 (명령) 이름으로 해석합니다 나머지는 프로그램에 대한 논쟁으로 남겨 둡니다. ProcessBuilder를 사용해보십시오 pb = new ProcessBuilder (new String [] { "java", "-version"}); –
@ShubhamChaurasia varargs 생성자가 있기 때문에 수동으로 배열 – JonK