Java中调用Python并得到输出的用法

Python中第三方库特别丰富,在实现算法的时候能够非常方便的进行编码。然而如果相同的功能搬到java上去实现可能就比较麻烦了,所以这里介绍一个在Java里调用Python程序的方法,并且在Java程序中得到Python的算法输出。

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

public class FirstJythonScript {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            Process proc=Runtime.getRuntime().exec("python filename.py"); //执行py文件
            InputStreamReader stdin=new InputStreamReader(proc.getInputStream());
            LineNumberReader input=new LineNumberReader(stdin);
            String line;
            while((line=input.readLine())!=null ){
                System.out.println(line);//得到输出
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

此方法能够避免因为第三方库的原因造成的程序出错。
还有一种Java调用Python的方法,就是使用Jython,需要事先导入Jython.jar文件,Jython不能够兼容第三方库,如果在py文件里调用了第三方的库文件,则将出错,所以这种方法有一定的局限性。
最后就是使用Java向Flask发送请求,Python通过解析Flask的请求,得到要执行的命令,然后再返回结果。恩,有点麻烦。

综合考虑,还是第一种比较方便。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值