亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

大港区| 吉木萨尔县| 鹤庆县| 崇阳县| 和平县| 宣汉县| 屏南县| 抚宁县| 元阳县| 阳谷县| 长阳| 儋州市| 包头市| 清新县| 兴隆县| 奈曼旗| 镇远县| 赤城县| 怀远县| 那坡县| 施甸县| 常山县| 江阴市| 长海县| 连江县| 梨树县| 二连浩特市| 呼玛县| 新巴尔虎右旗| 广水市| 南皮县| 定日县| 崇义县| 交城县| 年辖:市辖区| 巴林右旗| 怀柔区| 湖南省| 武邑县| 菏泽市| 安康市|