当然,一种需求的实现可能有很多种方式可以选择,经过筛选选择了使用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(); } } }