Java调用执行python脚本

代码实现

查到的方法有两种,一种是Jython,第二种是Runtime.getRuntime(),我用的是Runtime.getRuntime()的执行方式,直接贴代码。

Java的PythonExec类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class PythonExec {
    public static void main(String[] args) throws InterruptedException, IOException {
        //python执行命令,有的可能设置的是python3,就需要改为python3访问
        String exe = "python";
        //python文件地址
        String command="E:\\project\\java_practice\\src\\test.py";
        //拼接执行python脚本命令  python 文件
        String cmdArr = exe + " " + command;
        //调用Runtime.getRuntime().exec()执行python文件
        Process process = Runtime.getRuntime().exec(cmdArr);
        //读取python文件的输出内容,GBK:因为python文件中有中文输出会乱码,需要改为GBK
        //采用的是动态读取内容的方式,为了方式输出内容过多,程序卡住
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        }
        //process.waitFor()是脚本的执行状态,0为正常,1为失败,2文件不存在或路径错误  等等等
        int status = process.waitFor();
        if (status == 0) {
            System.out.println("执行成功");
        } else {
            System.out.println("执行失败");
        }
    }
}

python脚本文件

print(1+1)

def testpython():
    print('This is a python script')
    print("这是一个python文件")

if __name__ == '__main__':
    print('Start executing Python')
    testpython()
    print('End executing Python')
补充说明
	如果执行失败,可以现在本地用命令执行一下python脚本,看有无报错,有可能是因为第三方依赖包没有下载或者语法本身有错误。
	先简单实现了一下,后续有复杂逻辑会进行补充。有问题也欢迎指正,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值