java怎么调用python程序,并接收返回值,具体代码
时间: 2024-05-11 14:13:40 浏览: 109
Java调用python的方法(jython)
可以使用Java的ProcessBuilder类来调用Python程序,并使用Process类来接收返回值。以下是一个示例代码:
```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PythonCaller {
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("python", "test.py", "arg1", "arg2");
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = p.waitFor();
System.out.println("Python program exited with code " + exitCode);
}
}
```
在上面的代码中,我们使用ProcessBuilder类构建了一个进程,该进程将调用Python程序test.py,并传递两个参数arg1和arg2。然后,我们使用Process类启动这个进程,并使用一个BufferedReader对象读取Python程序的输出。最后,我们使用waitFor()方法等待Python程序执行完毕,并打印出退出代码。
test.py文件的内容如下:
```
import sys
print("Python program started with arguments:")
print(sys.argv)
# some Python code here
print("Python program finished")
sys.exit(0)
```
这个Python程序只是简单地打印出传递给它的参数,并在结束时打印出一条消息并退出。在Java程序运行时,它将调用这个Python程序,并将其输出打印到控制台。
阅读全文