牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-05-17 投稿人: 浏览次数:2409

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

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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。