當然,一種需求的實現可能有很多種方式可以選擇,經過篩選選擇了使用Runtime對象執行腳本返回運行過程的方式,然后將返回的過程結果轉換為流最后進行遍歷輸出。
在C盤下面創建一個hello_world.py文件作為python腳本的演示文件,填寫內容為:
print("======================")
print("hello world")
print("======================")
編寫java調用腳本:
package main_proj;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
// 創建運行過程
Process proc;
try {
// 通過exec()函數執行python命令運行.py腳本,返回存儲過程
proc = Runtime.getRuntime().exec("python C:\\hello_world.py");
// 將返回返回的運行過程轉化為存儲流
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
// 構建行數據對象
String line = null;
// 逐行讀取、打印結果
while ((line = in.readLine()) != null) {
System.out.println(line);
}
// 關閉輸入流
in.close();
proc.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
【往期精彩】
● 如何使用PyQt5一步步實現用戶登錄GUI界面、登錄后跳轉?
● 辦公自動化:幾行代碼將PDF文檔轉換為WORD文檔(代碼實戰)!
● 辦公自動化:輕松提取PDF頁面數據,並生成Excel文件(代碼實戰)!
● sched 模塊中巨好用的輕量級定時任務神器scheduler!
● 不用再使用命令行打包成exe,有人寫出了UI應用,可視化UI界面對python程序進行打包的方法!
● 發現一個秘密:既python3.6之后字典竟然變成了有序集合,我再次驗證了一下!
● 這么多的內置函數能記住嗎?對python的68個內置函數分類總結!
● 必須要會的文件操作對象File,python文件讀寫操作利器!
● 你不知道的CS模式的進程管理工具,狀態監測、項目啟停一目了然!
● 如何將一個python應用以docker鏡像的方式來運行?
● python-celery專注於實現分布式異步任務處理、任務調度的插件!
● python遠程服務操作工具:fabric,遠程命令、本地命令、服務器操作利器!
● python超贊插件you-get,執行一行命令即可下載、命令行下載工具推薦!
● 辦公自動化:Python-win32com自動將word文檔轉換成pdf格式!