如何通过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");


目录
打赏
0
0
0
0
31
分享
相关文章
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
380 90
Java汽车租赁系统源码(含数据库脚本)
Java汽车租赁系统源码(含数据库脚本)
28 4
Python入门修炼:开启你在大数据世界的第一个脚本
Python入门修炼:开启你在大数据世界的第一个脚本
61 6
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
1月前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
39 4
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等