91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java調用python腳本方式有哪些

發布時間:2020-08-14 11:34:16 來源:億速云 閱讀:309 作者:小新 欄目:編程語言

小編給大家分享一下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輸出中文時亂碼加的。

運行結果:

java調用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腳本方式有哪些

看完了這篇文章,相信你對java調用python腳本方式有哪些有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛川县| 临颍县| 深圳市| 吉水县| 加查县| 大英县| 会泽县| 眉山市| 克什克腾旗| 兴宁市| 株洲市| 铜陵市| 江达县| 东丰县| 焉耆| 札达县| 扬中市| 黄大仙区| 新郑市| 姚安县| 化德县| 温州市| 抚远县| 长丰县| 浦江县| 定远县| 鄂托克前旗| 海南省| 社旗县| 友谊县| 太谷县| 乌鲁木齐县| 桃园市| 玉门市| 宣恩县| 绩溪县| 司法| 怀化市| 铁力市| 丁青县| 讷河市|