当前位置:首页 > Java

java 如何调用python

2026-02-05 12:55:31Java

调用Python的几种方法

在Java中调用Python脚本或代码可以通过多种方式实现,以下是几种常见的方法:

使用ProcessBuilder或Runtime.exec

通过Java的ProcessBuilderRuntime.exec启动Python进程,直接运行Python脚本:

java 如何调用python

ProcessBuilder pb = new ProcessBuilder("python", "script.py", "arg1", "arg2");
Process process = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
int exitCode = process.waitFor();

使用Jython

Jython是一个将Python代码运行在JVM上的实现,可以直接在Java中调用Python代码:

PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("print('Hello from Python')");

使用JPype

JPype允许Java代码调用Python库,需要先安装JPype库:

java 如何调用python

import org.jpype.*;
JPype.startJVM(JPype.getDefaultJVMPath());
JPype.exec("print('Hello from Python')");
JPype.shutdownJVM();

使用REST API

将Python代码封装为REST服务,Java通过HTTP调用:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://localhost:5000/api"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

使用Py4J

Py4J允许Java和Python互相调用,需要在Python端启动网关:

GatewayServer gatewayServer = new GatewayServer(new PythonEntryPoint());
gatewayServer.start();
PythonEntryPoint entryPoint = (PythonEntryPoint) gatewayServer.getPythonServerEntryPoint();
String result = entryPoint.callPythonMethod("arg1", "arg2");
gatewayServer.shutdown();

注意事项

  • 确保系统中已安装Python并配置好环境变量。
  • 使用Jython或JPype时需添加对应的依赖库。
  • 跨语言调用时注意数据类型转换问题。
  • 性能敏感场景需评估进程启动或网络调用的开销。

标签: javapython
分享给朋友:

相关文章

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…

教你如何完全卸载java

教你如何完全卸载java

卸载 Java 的步骤 Windows 系统 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到 Java 相关的条目,通常显示为“Java”或“Java(TM)”。右键点击选择卸载,按照…

如何学习好java

如何学习好java

掌握Java基础知识 学习Java的第一步是掌握其基础知识,包括数据类型、变量、运算符、控制流语句(如if-else、for循环、while循环)以及数组。这些是构建更复杂程序的基石。可以通过在线教程…

java下载功能vue实现

java下载功能vue实现

Java 后端文件下载功能实现 后端需提供文件下载的接口,通常使用 HttpServletResponse 实现。以下是一个简单的 Java Spring Boot 示例: @GetMapping(…