내가Runtime.exec의()는 디렉토리에 공간 (자바)와 함께 실패
private static File jarLocation = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParentFile();
다음
를 호출하여 파일의 위치를 얻어서 내 jar 파일과 같은 디렉토리에 프로세스를 실행하는 것을 시도하고있다Runtime.getRuntime().exec("command", null, jarLocation);
일반적으로 잘 작동하지만 경로에 공백이 있으면 "디렉토리 이름이 유효하지 않습니다"라는 메시지가 나타납니다. 공간의 ASCII 16 진수가 20이기 때문에 "% 20"으로 공백을 대체 한 디렉토리의 경로를 인쇄하는 디버그 코드를 추가하려고했습니다. 그 경로에 공백이있는 디렉토리를 사용할 수있는 방법이 있습니까?
실제 공간에 % 20을 (를) 바꿔야합니다. 그것들은 URL 인코딩의 결과입니다. 편집 : http://stackoverflow.com/a/12733172/995891을 참조하십시오. – zapl
스택 추적을 포함한 전체 오류를 포함 할 수 있습니까? 어떤 OS를 실행하고 있습니까? 그리고 실제'command' 문자열은? 이 형식의 Runtime.exec()에 토큰 화되어 거기에 문제가있을 수 있습니다. –
@AndrewJanke 실행중인 명령이 아무런 차이가없는 것 같습니다. 나는 Windows 7과 Linux (Ubuntu)에서 이것을 시도했지만 별다른 차이가없는 것 같습니다. 나는 단지 명령에 문자열을 전달할 뿐이다. – user2248702