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的请求,得到要执行的命令,然后再返回结果。恩,有点麻烦。
综合考虑,还是第一种比较方便。