2016-12-23 7 views
0

자바에서 파이썬을 실행하기 위해 런타임과 프로세스 빌더를 모두 시도했지만 자바는 파이썬 결과를 표시 할 수 없습니다.자바를 사용하여 파이썬을 호출하고 실행하지만 결과는 없습니다. processbuilder runtime

파이썬 코드 :

def cal(): 
    a=4 
    b=90 
    c=a+b 
    return c 


if __name__ == "__main__": 
    c=cal() 
    print c 
    print "hello" 
    print "hello..................." 

자바 코드

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class qqqqqqqqqqqqqqqq { 

    public static void main (String args[]) throws IOException { 




     try 
     { 
//  ProcessBuilder pb = new ProcessBuilder("C:/Python27/python","C://Users//admin//Destop//dsf.py");  
//  Process p = pb.start(); 

      Runtime r=Runtime.getRuntime(); 
      Process p=r.exec("cmd /c C:/Python27/python C://Users//admin//Destop//dsf.py"); 



      BufferedReader bfr = new BufferedReader(new InputStreamReader(p.getInputStream())); 

      System.out.println(".........start process........."); 
      String line = ""; 
      while ((line = bfr.readLine()) != null) 
       { 
        System.out.println("Python Output: " + line); 
       } 
      System.out.println("........end process......."); 

     } catch (Exception e) 
     { 
      System.out.println(e); 
     } 



} 
} 

자바 출력 결과 : 자바는 파이썬을 실행할 수없는 이유 경로 및 코드에 오류가없는

.........start process......... 
........end process....... 

?

답변

0

코드가 정확합니다. 다음은 표준 자바 프로그램에서 파이썬 코드를 실행하는 데 필요한 수정 사항 중 일부입니다.

에 파이썬 exe를 제공 ​​할 때 이중 슬래시를 사용하십시오. 프로세스 p = r.exec ("cmd/c C :/Python27/python C : //Users//admin//Destop//dsf.py");

공용 클래스 테스트 {

public static void main (String args[]) throws IOException { 

    try 
    { 
     Runtime r=Runtime.getRuntime(); 
     Process p=r.exec("cmd /c C:\\Python34\\python.exe D:\\PythonScripts\\HelloWorld.py"); 

     BufferedReader bfr = new BufferedReader(new InputStreamReader(p.getInputStream())); 

     System.out.println(".........start process........."); 
     String line = ""; 
     while ((line = bfr.readLine()) != null) 
      { 
       System.out.println("Python Output: " + line); 
      } 
     System.out.println("........end process......."); 

    } catch (Exception e) 
    { 
     System.out.println(e); 
    } 

} }