2012-12-13 2 views
3

나는 자바 웹 개발 프로젝트를 가지고 있으며 파이썬 스크립트를 백그라운드에서 실행하고 자바로 계속 실행하려고한다.runtime.getruntime.exec를 사용하여 Java에서 python 스크립트 호출하기

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && python script.py"; 
Process p = Runtime.getRuntime().exec(command); 

나는 이것을 호출 할 때 아무 것도 보이지 않지만, 스크립트가 해당 디렉토리의 파일에 액세스 할 때 먼저 디렉토리를 변경해야합니다. 당신의 도움에 대한

감사

편집 :

정답은 시작을 추가했다

이 내 편집 코드가

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && start python script.py"; 
Process p = Runtime.getRuntime().exec(command); 
+0

파이썬 스크립트가 자이 썬에서 실행될 수 있습니까? 그렇다면 java에서 호출하여 스레드 – Mark

답변

1

사용자 환경 "실행"파이썬 스크립트를 지원을 구성 했입니까?
그렇지 않다면, 당신은 다음과 같이 호출한다 :

String command = "cmd.exe /c start python path\to\script\script.py"; 
Process p = Runtime.getRuntime().exec(command); 

start 명령은 (이 경우 스크립트 자체를)의 공급 인수 (이 경우 파이썬 인터프리터에서) 해당 실행 파일을 실행합니다.

+0

에 감사드립니다! 치료를했습니다! – FredoAF

3

cmd을 사용하여 디렉토리를 변경하는 대신 Java 측에서 프로세스의 작업 디렉토리를 설정할 수 있습니다. 예 :

ProcessBuilder pb = new ProcessBuilder("python", "script.py"); 
pb.directory(new File("C:\\path\\to\\py")); 
Process p = pb.start(); 
관련 문제