天天看點

java調用python腳本方法

1、執行系統調用

public static void main(String[] args) {

try {

Process p = Runtime.getRuntime().exec("c:\\Python32\\python.exe e:\\project\\python\\example.py");

p.waitFor();

System.out.println(p.exitValue());

} catch (Exception e) {

e.printStackTrace();

}

}

p.exitValue()擷取腳本的執行結果,python腳本的退出碼通過sys.exit(errCode)設定。

該方法優點:不需要導入第三方包,通過python.exe直接執行腳本,友善簡單。

2、通過jpython

public static void main(String[] args) {

PythonInterpreter interpreter = new PythonInterpreter();  

try {

interpreter.execfile(

"E:\\project\\python\\example.py");

PyInteger  res = (PyInteger)interpreter.get("Result");

System.out.println("command return value = " + res);

} catch (Exception e) {

e.printStackTrace();

}  

}

該方法優點:java python解釋器,可以深入python腳本内部進行執行函數,擷取變量值等;具有強大的操控性

        缺點:1、需要導入jpython包 

                  2、由于是java執行python語句,腳本内部import路徑就存在問題,路徑搜尋相對于java程式所在路徑,而非腳本所在路徑。在腳本裡列印目前檔案路徑的方法可以看出。

3、兩種方式如何選擇

      推薦第一種,java調用python腳本各司其職,應當避免java深入python腳本細節,否則java和python的混用的合理性就會受到質疑。