在Java中调用Python脚本,可以使用以下几种方法:

java如何调用pythonjava如何调用python

(图片来源网络,侵删)

1、使用Runtime类执行Python脚本

2、使用ProcessBuilder类执行Python脚本

3、使用第三方库Jython

下面分别详细介绍这三种方法。

1、使用Runtime类执行Python脚本

确保你的计算机上已经安装了Python,并将其添加到环境变量中,创建一个Python脚本(test.py),内容如下:

print("Hello, Java!")

接下来,在Java代码中使用Runtime类执行这个Python脚本:

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class JavaCallPython {
    public static void main(String[] args) {
        try {
            // 指定Python脚本的路径
            String pythonScriptPath = "test.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脚本执行完成
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行Java代码,将会看到Python脚本的输出结果:

Hello, Java!

2、使用ProcessBuilder类执行Python脚本

ProcessBuilder是Java 5引入的一个用于创建操作系统进程的类,与Runtime类相比,ProcessBuilder提供了更多的控制选项,例如可以设置进程的工作目录、环境变量等。

确保你的计算机上已经安装了Python,并将其添加到环境变量中,创建一个Python脚本(test.py),内容如下:

print("Hello, Java!")

接下来,在Java代码中使用ProcessBuilder类执行这个Python脚本:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class JavaCallPython {
    public static void main(String[] args) {
        try {
            // 指定Python脚本的路径和参数列表(如果有的话)
            List<String> command = new ArrayList<>();
            command.add("python");
            command.add("test.py");
            // 使用ProcessBuilder类执行Python脚本
            ProcessBuilder processBuilder = new ProcessBuilder(command);
            Process process = processBuilder.start();
            // 获取Python脚本的输出结果
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            // 等待Python脚本执行完成
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行Java代码,将会看到Python脚本的输出结果:

Hello, Java!

3、使用第三方库Jython(仅适用于Windows系统)

Jython是一个将Python代码集成到Java应用程序中的库,它允许你在Java中直接调用Python代码,而无需启动单独的Python进程,Jython目前仅支持Windows系统,要使用Jython,你需要下载并安装Jython库,下载地址:http://www.jython.org/downloads/jythoninstaller/jython_installer2.7.2rc1cp27nonewin32.exe(请根据你的系统和Python版本选择合适的安装包)。

安装完成后,你可以在Java代码中使用Jython库调用Python脚本:

import org.python.util.*; // 导入Jython库中的相关类和方法
import org.python.*; // 导入Jython库中的Python解释器类和对象模型类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口类等核心类和接口
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。