java调用python,进行交互
时间: 2023-07-04 16:08:03 浏览: 54
Java调用Python可以使用Java的ProcessBuilder类来启动Python进程,然后使用Java的标准输入输出流与Python进行交互。
以下是一个简单的Java调用Python的示例:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class JavaCallPython {
public static void main(String[] args) {
try {
// 创建一个ProcessBuilder对象
ProcessBuilder pb = new ProcessBuilder("python", "hello.py");
// 启动Python进程
Process process = pb.start();
// 获取Python进程的标准输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
// 读取Python进程的输出
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Python进程结束
int exitCode = process.waitFor();
System.out.println("Python程序执行完毕,退出码为:" + exitCode);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个ProcessBuilder对象,并将Python解释器的路径和Python脚本的路径作为参数传入。然后,我们通过start()方法启动Python进程,并通过getInputStream()方法获取Python进程的标准输出流。最后,我们读取Python进程的输出,并等待Python进程结束。
在Python脚本中,我们可以通过print()函数将输出发送到标准输出流。例如,以下是一个名为hello.py的Python脚本:
```python
print("Hello, world!")
```
当我们运行Java程序时,它将启动Python进程并调用hello.py脚本。Python进程将输出"Hello, world!",Java程序将读取并打印此输出。
阅读全文