Java中调用Python脚本的方法有哪些?详细步骤与技巧揭秘!
- 后端开发
- 2025-10-27
- 5
在Java中调用Python脚本有多种方法,以下是一些常见的方法:
使用Python的Jython库
Jython是一个运行在Java平台上的Python实现,可以将Python代码编译成Java字节码,以下是使用Jython调用Python脚本的基本步骤:

| 步骤 | 说明 |
|---|---|
| 1 | 在Java项目中添加Jython库依赖。 |
| 2 | 创建一个Python脚本文件(script.py)。 |
| 3 | 在Java代码中导入Jython库。 |
| 4 | 使用Jython运行Python脚本。 |
import org.python.util.PythonInterpreter; public class JythonExample { public static void main(String[] args) { PythonInterpreter interpreter = new PythonInterpreter(); interpreter.execfile("script.py"); } }
使用Python的CPython库
CPython是Python的标准实现,可以使用Java的ProcessBuilder类来调用Python解释器并执行脚本,以下是使用CPython调用Python脚本的基本步骤:
| 步骤 | 说明 |
|---|---|
| 1 | 在Java项目中添加CPython库依赖。 |
| 2 | 创建一个Python脚本文件(script.py)。 |
| 3 | 使用ProcessBuilder类执行Python脚本。 |
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class CPythonExample { public static void main(String[] args) { ProcessBuilder processBuilder = new ProcessBuilder("python", "script.py"); try { Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); System.out.println("Exit code: " + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }
使用Java的ProcessBuilder类调用Python脚本
不依赖于任何Python库,可以使用Java的ProcessBuilder类直接调用Python脚本,以下是使用ProcessBuilder调用Python脚本的基本步骤:

| 步骤 | 说明 |
|---|---|
| 1 | 创建一个Python脚本文件(script.py)。 |
| 2 | 使用ProcessBuilder类执行Python脚本。 |
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ProcessBuilderExample { public static void main(String[] args) { ProcessBuilder processBuilder = new ProcessBuilder("python", "script.py"); try { Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); System.out.println("Exit code: " + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }
FAQs
Q1:如何在Java中调用Python脚本,而不使用任何Python库?

A1:可以使用Java的ProcessBuilder类直接调用Python脚本,这不需要安装任何Python库,只需确保Python解释器在系统路径中即可。
Q2:如何在Java中调用Python脚本,并获取其输出结果?
A2:可以使用ProcessBuilder类执行Python脚本,并通过读取Process对象的InputStream来获取输出结果,以下是示例代码:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ProcessBuilderExample { public static void main(String[] args) { ProcessBuilder processBuilder = new ProcessBuilder("python", "script.py"); try { Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); System.out.println("Exit code: " + exitCode); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } }