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

来源:互联网 发布:美国新英格兰大学知乎 编辑:程序博客网 时间:2024/05/22 15:23

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的请求,得到要执行的命令,然后再返回结果。恩,有点麻烦。

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

阅读全文
1 0
原创粉丝点击