2011-09-16 5 views
3

자바에서 파이썬 스크립트를 실행하려하지만 몇 가지 문제가 있습니다. 내 자바 프로젝트에 폴더라는 파이썬 내부에 ​​파이썬 스크립트를 실행하기 위해 울부 짖는 소리 명령을 사용하고 있습니다 :자바 코드 (runtime.exec) 내에서 파이썬 스크립트 호출

Runtime r = Runtime.getRuntime(); 
Process p = r.exec("cmd /c python python\\test.py"); 

스크립트는하지만 실행 후, 텍스트 파일 및 화면에 뭔가를 작성해야 throught r.exec,이 작동하지 않습니다 (아무 것도 화면에 기록되지 p.waitFor() 반환합니다 1, 제대로 작동하지 않았다는 의미), 그것은 비록 터미널에서 작동합니다. 프로젝트의 루트 폴더에 python 스크립트를 놓아서 오류가 일부 경로 실수로 인해 발생할 수 있는지 확인했지만 성공하지 못했습니다. 어떻게 작동합니까?

내 SO는 윈도우 7과 내가 실행하는 데 노력하고있어 파이썬 스크립트 (test.py)입니다 :

import sys 
import os 

def main(): 
    f = open('python/test.txt','w') 
    f.write('It works!') 
    f.flush() 
    f.close() 
    print('It works!') 

if __name__ == '__main__': 
    main() 
+3

같이, 파이썬 실행 파일의 전체 경로를 포함하도록 명령 줄을 변경해보십시오 '작업 디렉토리),'python' 서브 디렉토리가있는 디렉토리를 얻었습니까? –

답변

7

대부분의 경우 파이썬 실행 파일은 자식 프로세스에게 주어진 것 경로에 있지 않습니다. `(자바 프로세스를 인쇄, 당신은`에서 System.out.println (System.getProperty를 ("으로 user.dir")가) 때

Process p = r.exec("cmd /c c:\\path\\to\\python python\\test.py");