如何通过Java程序调用python脚本

简介: 如何通过Java程序调用python脚本

要通过Java程序调用Python脚本,可以使用Runtime.getRuntime().exec()方法或者ProcessBuilder类。以下是两种方法的示例代码:

使用 Runtime.exec() 方法

import java.io.*;
public class CallPythonScript {
    public static void main(String[] args) {
        try {
            String pythonScriptPath = "/path/to/your/pythonScript.py";
            String[] command = new String[]{"python", pythonScriptPath};
            
            // 执行Python脚本
            Process process = Runtime.getRuntime().exec(command);
            
            // 读取脚本的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            
            // 等待脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("Python脚本退出状态码: " + exitCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

确保将/path/to/your/pythonScript.py替换为Python脚本的实际路径,并且你的环境变量中已经配置了Python的路径,这样才能通过python命令来执行脚本。

使用 ProcessBuilder 类

import java.io.*;
import java.util.*;
public class CallPythonScript {
    public static void main(String[] args) {
        try {
            String pythonScriptPath = "/path/to/your/pythonScript.py";
            ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath);
            processBuilder.redirectErrorStream(true);
            
            // 启动进程
            Process process = processBuilder.start();
            
            // 读取进程的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            
            // 等待进程完成
            int exitCode = process.waitFor();
            System.out.println("Python脚本退出状态码: " + exitCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

同样,确保将/path/to/your/pythonScript.py替换为Python脚本的实际路径。

以上两种方法,如果你的Python脚本需要接收命令行参数,可以简单地将参数添加到command数组或ProcessBuilder的参数列表中。例如:

String[] command = new String[]{"python", pythonScriptPath, "arg1", "arg2", "arg3"};

或者

ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath, "arg1", "arg2", "arg3");


目录
相关文章
|
11月前
|
Java Python
Python调用java程序
Python调用java程序
|
21天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
38 3
|
4月前
|
Java 编译器 Windows
用命令行运行Java代码
用命令行运行Java代码
26 0
|
5月前
|
存储 缓存 Java
运行Java程序后,都发生了什么?
运行Java程序后,都发生了什么?
53 0
|
Java Shell Linux
Jmeter运行java程序的一个方法
Jmeter运行java程序的一个方法
Jmeter运行java程序的一个方法
|
11月前
|
Java Python
Java调用Python脚本
Java调用Python脚本
108 0
|
Java Maven Python
Java中调用py脚本文件
Java中调用py脚本文件
119 0
|
Java 编译器
理解Java程序的执行
理解Java程序的执行
|
IDE Java 测试技术
记一次java命令执行IDE中java类的入口函数的坑
熟悉java的同学都知道,我们可以直接通过`java命令`执行Java类的`入口函数`,执行时还可以携带参数,参数是以`字符串数组`的形式传递给main入口函数的。 不过现在已经很少使用这种方式执行java代码了,都是通过IDE来执行。