Java 调用Python程序
时间: 2024-02-16 16:35:24 浏览: 227
要在 Java 中调用 Python 程序,你可以使用 Java 的 `ProcessBuilder` 类,该类提供了启动进程并与其进行交互的功能。下面是一个简单的例子:
```java
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class PythonCaller {
public static void main(String[] args) {
try {
ProcessBuilder pb = new ProcessBuilder("python", "path/to/your/python/script.py");
Process process = pb.start();
// 获取 Python 程序的输出
InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
// 等待 Python 程序执行完毕
int exitCode = process.waitFor();
System.out.println("Python script exited with code " + exitCode);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在上面的例子中,我们启动了一个名为 `script.py` 的 Python 程序,并在 Java 中获取了其输出。如果需要向 Python 程序传递参数,可以在 `ProcessBuilder` 的构造函数中传递参数列表。例如,如果需要向 Python 程序传递一个字符串参数,可以这样写:
```java
ProcessBuilder pb = new ProcessBuilder("python", "path/to/your/python/script.py", "arg1");
```
其中,`arg1` 就是要传递的参数。在 Python 程序中,可以通过 `sys.argv` 获取传递的参数。
阅读全文