您好,登錄后才能下訂單哦!
小編給大家分享一下java調用python腳本方式有哪些,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
常見的java調用python腳本方式有兩種,下面給大家介紹一下:
·通過Jython.jar提供的類庫實現
·通過Runtime.getRuntime()開啟進程來執行腳本文件
python學習網,大量的免費python視頻教程,歡迎在線學習!
這兩種方法我都嘗試過,個人推薦第二種方法,因為Python有時需要用到第三方庫,比如requests,而Jython不支持。所以本地安裝Python環境并且安裝第三庫再用Java調用是最好的方法。
下面通過兩個小例子,分別是不帶參數和帶參數的,展示如何使用Java調用Python腳本:
Python代碼:
def hello(): print('Hello,Python') if __name__ == '__main__': hello()
Java代碼:
import java.io.BufferedReader; import java.io.InputStreamReader; public class HelloPython { public static void main(String[] args) { String[] arguments = new String[] {"python", "E://workspace/hello.py"}; try { Process process = Runtime.getRuntime().exec(arguments); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK")); String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); //java代碼中的process.waitFor()返回值為0表示我們調用python腳本成功, //返回值為1表示調用python腳本失敗,這和我們通常意義上見到的0與1定義正好相反 int re = process.waitFor(); System.out.println(re); } catch (Exception e) { e.printStackTrace(); } } }
其中說明一點,BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));這段代碼中的GBK是為了防止Python輸出中文時亂碼加的。
運行結果:
接下來是帶參數的,Python代碼:
import sys def hello(name,age): print('name:'+name) print('age:'+age) if __name__ == '__main__': hello(sys.argv[1], sys.argv[2])
Java代碼:
import java.io.BufferedReader; import java.io.InputStreamReader; public class HelloPython { public static void main(String[] args) { String[] arguments = new String[] {"python", "E://workspace/hello.py","lei","23"}; try { Process process = Runtime.getRuntime().exec(arguments); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK")); String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); //java代碼中的process.waitFor()返回值為0表示我們調用python腳本成功, //返回值為1表示調用python腳本失敗,這和我們通常意義上見到的0與1定義正好相反 int re = process.waitFor(); System.out.println(re); } catch (Exception e) { e.printStackTrace(); } } }
運行結果:
看完了這篇文章,相信你對java調用python腳本方式有哪些有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。