2014-03-19 2 views
0

내에서 명령 줄 인수를 취하는 파이썬 프로그램을 실행하는 방법 :이 같은 것을 사용 나는 그 자바 프로그램 내에서 다른 자바 프로그램을 실행하는 데 이해 자바 프로그램

Runtime.getRuntime().exec("/**A command goes here*/") 

을하지만 어떻게 것 명령 줄 인수를 사용하는 Python 프로그램을 실행 하시겠습니까? 특히, Java 프로그램은 파일을 명령 행 인수로 사용합니다. 그런 다음이 파일을 Python 프로그램에 전달하면 동일한 디렉토리에 다른 파일이 생성됩니다. 이 새 파일에 액세스 할 수 있습니다.

는 단순히 호출 할 수

Runtime.getRuntime().exec("python /**directory_of_the_python_program arguments_for_program*/"); 

또한 내부에 "간부 (...)를"어떤 일이 일어나는지에 대해 조금 혼란 스러워요.

답변

2

이 스트림에 출력 파이썬에서 print을 사용할 수 있도록, 표준 출력을 캡처 해보십시오 : 자바 프로그램 출력에, 파이썬 프로그램에서

try { 
    Process p = Runtime.getRuntime().exec("python yourProgram.py thearg1 thearg2"); 
    p.waitFor(); 
    InputStream stderr = proc.getOutputStream(); 
    InputStreamReader in = new InputStreamReader(stdout); 
    BufferedReader reader = new BufferedReader(in); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
     System.out.println("Python says: " + line); 
    } 
    int exitVal = proc.waitFor(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

, 인쇄 사용하십시오 같은 :

print 'Hi!' 

은 당신이 사용할 수있는 자바 프로그램을 전송을 확인하려면 sys.argv :

print 'The Java program sent me: ', str(sys.argv) 

참고 : 저는 파이썬 전문가가 아니며 많은 작업을 수행하지 않았습니다. 구문을 잘못 입력했는지 알려주세요.