Java调用Python脚本(Python3,Windows10系统)

介绍下如何在Java中调用Python脚本,可能是目前最简单的方法(●’^’●)。

又是师姐的任务,要求把我的Python程序集成到纯Java的系统中。于是在网上又是一顿搜索,不乏各种厉害的方法。其中最常见的是Jython,听起来十分高大上,直接把世界上两种最强大的语言结合了,然后一顿安装操作之后发现目前只支持Python2(这都什么时代了,Python2都要跑路了…)。Github上面倒是有个官方的Jython3.5,然而看不明白怎么用。最终,可能是传说中的信息偶遇吧,发现了一个超级简单的方法,那就是:

从Java调用命令行,再从命令行调用Python脚本。

(看起来很Low,好歹也是个方法吧=.=||)

Java调用命令行,直接看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Process p;
String cmd="python ExecByJava.py \"Hello\" \"World\"";//利用CMD命令调用python,包含两个参数
try{
p = Runtime.getRuntime().exec(cmd);
InputStream fis=p.getInputStream();
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
}
}
catch (IOException e){
e.printStackTrace();

可以看到这里面要求输入两个参数,也就是要传入到Python中,那么Python里面可以这么写:

1
2
3
4
5
6
import sys

a = sys.argv[1]
b = sys.argv[2]
print(a)
print(b)

看一下结果:

1
2
javac -encoding UTF-8  ExecPyhton.java
java ExecPyhton

(也发现了一个问题,用命令行编译Java,程序里面有中文的话要转码,即使是注释的也不行)

是的,就这么简单( ̄▽ ̄)”,完整代码==>GitHub-AuxiliaryScripts