오늘 Windows 압축 명령에 대한 Java 호출을 수행할 때 이상한 문제가 발생했습니다. 코드는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다 .
String cmd = "C:/Program Files (x86)/WinRAR/rar.exe ac:/test.rar c:/test.log";
//System.out.println(cmd);
프로세스 프로세스 = Runtime.getRuntime().exec(cmd);
위의 코드는 Xp, win7 및 Windows Server2003에서 완전히 정상적으로 실행됩니다. 코드가 Windows Server2008로 전송된 후 Java 예외가 직접 프롬프트됩니다.
2시간의 연구 끝에 위의 코드는 다음과 같이 수정되었습니다.
다음과 같이 코드 코드를 복사합니다 .
String[] cmd ={"C:/Program Files (x86)/WinRAR/rar.exe", "a","C:/test.rar" ,"c:/test.log"};
//System.out.println(cmd);
프로세스 프로세스 = Runtime.getRuntime().exec(cmd);
정상입니다. 이 방법으로 작성하면 파일 경로 등의 공백 문제를 해결할 수 있다는 또 다른 장점이 있습니다.