Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java执行python脚本并传递参数


在 Java 中执行 Python 脚本并传递参数有多种实现方式。下面我将介绍三种常见的方式,包括使用 ProcessBuilder、使用 Jython 和使用 Java 调用 Python 脚本的方式。对于每种方式,我将提供详细的步骤流程和相应的示例代码。

使用 ProcessBuilder

步骤流程:

  1. 创建一个 ProcessBuilder 对象,并设置要执行的命令和参数。
  2. 启动该 ProcessBuilder 对象,并等待其执行完成。

示例代码:

import java.io.IOException;

public class ExecutePythonWithProcessBuilder {
    public static void main(String[] args) {
        try {
            ProcessBuilder processBuilder = new ProcessBuilder("python", "path/to/your_script.py", "arg1", "arg2");
            Process process = processBuilder.start();

            int exitCode = process.waitFor();
            System.out.println("Python script execution completed with exit code: " + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

使用 Jython

Jython 是一个将 Python 代码转换为 Java 字节码的工具,允许在 Java 环境中运行 Python 代码。

步骤流程:

  1. 添加 Jython 库的依赖。
  2. 编写 Java 代码来调用 Python 脚本。

Maven 依赖:

<dependency>
    <groupId>org.python</groupId>
    <artifactId>jython</artifactId>
    <version>2.7.2</version>
</dependency>

示例代码:

import org.python.util.PythonInterpreter;

public class ExecutePythonWithJython {
    public static void main(String[] args) {
        try (PythonInterpreter pyInterp = new PythonInterpreter()) {
            pyInterp.exec("print('Hello from Python')")
            pyInterp.exec("print('Arguments:', sys.argv)");
        }
    }
}

使用 Java 调用 Python 脚本

这种方式涉及使用 Java 的 Runtime 类来执行命令行,从而调用 Python 脚本。

步骤流程:

  1. 使用 Runtime 类创建一个新的进程,并执行 Python 解释器来运行脚本。
  2. 可以通过标准输入流将参数传递给 Python 脚本。

示例代码:

import java.io.IOException;

public class ExecutePythonFromJava {
    public static void main(String[] args) {
        try {
            String pythonScriptPath = "path/to/your_script.py";
            String[] cmd = {"python", pythonScriptPath, "arg1", "arg2"};

            Process process = Runtime.getRuntime().exec(cmd);

            int exitCode = process.waitFor();
            System.out.println("Python script execution completed with exit code: " + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

以上是三种在 Java 中执行 Python 脚本并传递参数的方式,每种方式都有其适用的场景。您可以根据项目的需求和复杂性选择其中一种方法。请确保根据您选择的方式,将所需的依赖项添加到您的项目中(如使用 Maven 或 Gradle)。

在Java中执行Shell脚本有多种方式,下面将介绍三种常用的方法,并提供相应的步骤流程和示例代码。###方法三:使用第三方库ApacheC ...
Redis 脚本使用 Lua 解释器来执行脚本。Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 ...
Elasticsearch 的脚本模块主要是对 ES 的字段进行再处理操作。例如,可以用来重新评估查询的自定义得分,可以对索引中的某个字段再 ...
###直接调用Python脚本这种方式是最简单直接的方式,可以在Django视图函数中直接调用Python脚本文件。你可以在Django的视 ...
以下是一些常见的实现方式,以及它们的步骤流程、示例代码以及相关的Maven和Gradle依赖坐标。使用`thenApply()`、`then ...