Java调用Python的三种实现方式详解

码头散步
码头散步
发布时间:2026-10-15| 6人浏览过
原创

本文详细解析在Java环境中调用Python代码的三种主流方案:通过PythonInterpreter直接执行语句、加载本地脚本文件并调用特定函数,以及直接运行完整Python脚本。文章结合具体Java代码示例,展示了参数传递、结果获取及路径配置等关键细节,帮助开发者实现跨语言功能集成。

Java调用Python函数的实现方案

第一种方式是在Java类中直接执行Python语句。这种方式适用于简单的脚本逻辑,无需创建独立的Python文件。通过初始化PythonInterpreter实例,可以直接使用exec方法执行Python代码字符串。例如,可以定义一个元组存储星期数据,并打印特定索引的元素。这种方法适合快速验证或执行简单的Python逻辑,但代码可读性和维护性相对较弱。


class="highlight">
import org.python.util.PythonInterpreter;
/**
 * Created by wjf on 2018/3/16.
 */
public class java2python {

    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.exec("# coding=utf-8");
        interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
        interpreter.exec("print days[1];");
    }
}


第二种方式是在Java中调用本机Python脚本中的函数。这种方式适用于需要将复杂Python逻辑封装在独立文件中的场景。首先,通过execfile方法加载指定的Python脚本文件路径。接着,从解释器中获取脚本中定义的特定函数(如adder)。然后,使用PyInteger等包装类将Java整数参数传递给Python函数进行调用。最后,获取返回的PyObject对象并转换为字符串输出结果。这种方式实现了Java与Python代码的模块化分离,便于维护复杂的业务逻辑。


  public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("C:\\Users\\wjf\\IdeaProjects\\javaTestPython\\src\\my_utils.py");
        PyFunction func = interpreter.get("adder", PyFunction.class);

        int a = 2010, b = 8;
        PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
        System.out.println("anwser = " + pyobj.toString());
    }

第三种方式是使用Java直接执行Python脚本。这种方式适用于需要运行完整Python程序或脚本的场景,无需在Java中处理具体的函数调用逻辑。通过PythonInterpreter的execfile方法,直接指定Python脚本的绝对路径即可执行。例如,运行一个名为input.py的脚本文件。这种方式最简单直接,适合执行不需要返回复杂结果或只需关注脚本副作用的场景。


    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        interpreter.execfile("C:\\Users\\wjf\\IdeaProjects\\javaTestPython\\src\\input.py");
    }

至此,关于Java与Python相互调用的三种主要实现方式已介绍完毕。更多相关技术细节与进阶用法,建议参考本站历史文章或继续浏览后续内容。感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。