2014-10-15 5 views
0

배치 파일을 실행하고 Windows 7 Enterprise 64 비트에서 오류 코드를 가져 오려고합니다.Java ProcessBuilder를 사용하여 Windows 배치 파일을 실행하면 항상 종료 코드 0이 반환됩니다.

내 배치 파일은 C : \ test.cmd 단일 라인을 포함 : - 배치 파일을 실행하기위한

exit 1 

내 코드입니다 : -

public static void main(String[] args) throws Exception { 
     Process process = new ProcessBuilder("c:\\test.cmd").start(); 
     System.out.println(process.waitFor()); 
} 

출력은 0이다. 시험해 보면 : -

new String[] {"cmd", "/c", "c:\\test.cmd"} 

결과가 다시 0입니다.

제가 빠뜨린 ProcessBuilder API에는 많은 마법이없는 것 같습니다. 누구든지 내 코드가 잘못되어있는 것을 볼 수 있습니까?

배치 파일의 종료 코드를 캡처해서는 안되나요?

답변

0

내 PC에는 뭔가 이상하다고 생각됩니다. 반환 코드를 캡처 할 때 실패한 단위 테스트를 다운로드 한 Apache Commons Exec 프로젝트 소스 코드. 내 PC에서 해결할 수없는 것으로 보이며 해결 방법을 찾지 못했습니다.

+0

정확하게 똑같은 코드를 언급하면 ​​Windows 서버에서 하나의 결과를 얻을 수 있으므로 내 Windows 7 버전과 관련이 있습니다. – mekondelta