温馨提示×

Java如何调用Python脚本

小樊
81
2024-09-30 03:18:22
栏目: 编程语言

在Java中调用Python脚本,可以通过以下两种主要方法实现:

使用Java的Runtime类

Java的Runtime类提供了一个简单的方法来执行外部命令,包括Python脚本。以下是一个示例代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class JavaCallPython {
    public static void main(String[] args) {
        try {
            // 指定Python脚本的路径
            String pythonScriptPath = "/path/to/your/python_script.py";

            // 使用Runtime类执行Python脚本
            Process process = Runtime.getRuntime().exec("python " + pythonScriptPath);

            // 读取Python脚本的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // 等待Python脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("Python script exited with code " + exitCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,你需要将/path/to/your/python_script.py替换为你的Python脚本的实际路径。

使用Jython库

Jython是一个将Python代码集成到Java应用程序中的库。它允许你在Java程序中直接运行Python代码。以下是一个使用Jython的示例:

首先,你需要下载并安装Jython库。你可以从Jython官方网站下载最新版本的Jython JAR文件。

然后,你可以使用以下代码在Java程序中调用Python脚本:

import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

public class JavaCallPython {
    public static void main(String[] args) {
        try (PythonInterpreter interpreter = new PythonInterpreter()) {
            // 导入Python脚本
            interpreter.execfile("/path/to/your/python_script.py");

            // 调用Python脚本中的函数或变量
            PyObject functionName = interpreter.get("function_name");
            PyObject result = functionName.__call__();

            // 将结果转换为Java类型(如果需要)
            // ...

            // 打印结果
            System.out.println(result);
        }
    }
}

在这个示例中,你需要将/path/to/your/python_script.py替换为你的Python脚本的实际路径,并将function_name替换为你想要调用的Python函数名。

注意:在使用Jython时,你需要确保你的Python脚本与Java程序在同一环境中,或者将Python脚本的路径添加到Java的类路径中。

0