Java使用Runtime调用Python脚本

py文件:

from sys import argv
import sys
# 防止中文乱码
import io
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

def testJP(a):
    print("调用成功:" + a)

a = argv[1]  # 第一个参数是路径,第二个才是可以使用的参数
testJP(a)

Java文件:

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

/*
* 使用Runtime调用
* python3.7位置:  "C:\Users\qq201\Anaconda3\python.exe"
*
* String[] arg = new String[]{"解释器的位置(本地项目可以直接使用python)", "python文件位置", 参数};   参数可以省略
*
* */
public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        String reselt = "";
        String[] arg = { "C:\\Users\\qq201\\Anaconda3\\python.exe", "Exercise1\\src\\main\\java\\python\\testJpython1.py", "你好"};
        try {
            Process proc = Runtime.getRuntime().exec(arg);
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            reselt = in.readLine();
            in.close();
            int i = proc.waitFor();  //返回0表示执行成功,返回1表示执行失败,返回2表示没有此文件或者目录
            System.out.println(i);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(reselt);

    }
}

运行结果:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值