java 异步执行python脚本
时间: 2023-09-22 21:07:55 浏览: 101
Java 可以通过调用 Python 解释器来异步执行 Python 脚本。下面是一种基于 `ProcessBuilder` 类的实现方式:
```java
try {
// 构造 ProcessBuilder 对象
ProcessBuilder pb = new ProcessBuilder("python", "path/to/your/python/script.py");
// 设置工作目录
pb.directory(new File("path/to/your/python/script/directory"));
// 启动进程
Process process = pb.start();
// 异步读取进程输出
InputStream stdout = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待进程执行完成
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("Python script executed successfully.");
} else {
System.err.println("Python script failed with exit code: " + exitCode);
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
```
以上代码会启动一个新进程来执行 Python 脚本,并异步读取进程的输出。如果 Python 脚本执行成功,进程的退出码为 0,否则为非 0 值。
需要注意的是,如果 Python 脚本需要读写文件,或者涉及到网络通信等操作,可能需要考虑 Python 进程的安全性和权限问题。
阅读全文