在 Java 中执行 Python 脚本并传递参数有多种实现方式。下面我将介绍三种常见的方式,包括使用 ProcessBuilder、使用 Jython 和使用 Java 调用 Python 脚本的方式。对于每种方式,我将提供详细的步骤流程和相应的示例代码。
步骤流程:
示例代码:
import java.io.IOException;
public class ExecutePythonWithProcessBuilder {
public static void main(String[] args) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("python", "path/to/your_script.py", "arg1", "arg2");
Process process = processBuilder.start();
int exitCode = process.waitFor();
System.out.println("Python script execution completed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Jython 是一个将 Python 代码转换为 Java 字节码的工具,允许在 Java 环境中运行 Python 代码。
步骤流程:
Maven 依赖:
<dependency>
<groupId>org.python</groupId>
<artifactId>jython</artifactId>
<version>2.7.2</version>
</dependency>
示例代码:
import org.python.util.PythonInterpreter;
public class ExecutePythonWithJython {
public static void main(String[] args) {
try (PythonInterpreter pyInterp = new PythonInterpreter()) {
pyInterp.exec("print('Hello from Python')")
pyInterp.exec("print('Arguments:', sys.argv)");
}
}
}
这种方式涉及使用 Java 的 Runtime
类来执行命令行,从而调用 Python 脚本。
步骤流程:
示例代码:
import java.io.IOException;
public class ExecutePythonFromJava {
public static void main(String[] args) {
try {
String pythonScriptPath = "path/to/your_script.py";
String[] cmd = {"python", pythonScriptPath, "arg1", "arg2"};
Process process = Runtime.getRuntime().exec(cmd);
int exitCode = process.waitFor();
System.out.println("Python script execution completed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
以上是三种在 Java 中执行 Python 脚本并传递参数的方式,每种方式都有其适用的场景。您可以根据项目的需求和复杂性选择其中一种方法。请确保根据您选择的方式,将所需的依赖项添加到您的项目中(如使用 Maven 或 Gradle)。