首页 > 编程语言 >使用java调用Python脚本

使用java调用Python脚本

时间:2023-12-13 22:31:37浏览次数:69  
标签:脚本 调用 java ProcessBuilder Python python new

通过使用java中的ProcessBuilder类,可以实现在java代码中调用外部的python代码的功能,以下为具体代码:

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

public class JavaCallPython {

    public static void main(String[] args) {
        try {
            // 指定Python脚本路径
            String pythonScriptPath = "path/hello.py";

            // 构建ProcessBuilder对象
            ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath);

            // 启动外部进程
            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脚本执行完毕
            int exitCode = process.waitFor();
            System.out.println("Python脚本执行完毕,退出码:" + exitCode);

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

编译java文件并执行

javac Java1.java
java Java1

python文件中的内容

# hello.py
print("Hello 51CTO 我正在做任务!")

执行结果

Hello 51CTO 我正在做任务!
Python脚本执行完毕,退出码:0

这样前提是本地电脑上已经安装了python环境,否则可能会出现调用失败的错误;

标签:脚本,调用,java,ProcessBuilder,Python,python,new
From: https://blog.51cto.com/u_16340211/8807350

相关文章

  • [转]cryptoJs DES_CBC_Pkcs7 转成 Java(对称加密早期协议"DES"现已不安全,仅用于老项
    原文地址:cryptoJsDES_CBC_Pkcs7转成Java-唯学而知-博客园前端DES加密:importcryptoJsfrom'crypto-js';//DES加密functionencrypt(message,key,iv){//字符串转16进制constkeyHex=cryptoJs.enc.Utf8.parse(key);constivHex=cryptoJs.enc.U......
  • Java第九课_继承
    3.面向对象的编程_继承继承publicclassPractice{publicstaticvoidmain(String[]args){/*继承/extends:子类继承父类后,子类可以获取父类中所有的非私有的成员;子类:被抽取共同成员的类,通常是多个类,StudentWorker......
  • 【JavaSE】Stream流
    Stream作用:简化数组或集合的操作获取Stream流对象Stream流中间操作方法返回值都是Stream流对象,可以链式编程Stream流终结操作方法返回值不再是Stream流对象Stream收集操作因为Stream流操作不会修改数据源,因此需要收集操作:将Stream流操作后到结果数据转回到集合收......
  • java 两个列表的求交集、差集和并集
    java两个列表的求交集、差集和并集importjava.util.HashSet;importjava.util.List;importjava.util.Set;publicclassSetOperations{publicstaticvoidmain(String[]args){//创建两个列表List<String>list1=Arrays.asList(......
  • 无涯教程-Java - max()函数
    此方法给出两个参数中的最大值。参数可以是int,float,long,double。max()-语法此方法具有以下变体-doublemax(doublearg1,doublearg2)floatmax(floatarg1,floatarg2)intmax(intarg1,intarg2)longmax(longarg1,longarg2)max()-返回值此方法返回两个参数......
  • Python Numpy 数据可视化
    ​ 1、安装MatplotlibMatplotlib是一个功能强大且受欢迎的Python库,用于生成2D图表和图形。它因其灵活性、广泛的功能和用户友好的界面而广泛用于各种科学、工程和数据分析应用。可以通过pip安装,命令如下,pipinstallmatplotlib或python3-mpipinstallmatplotl......
  • python 的 多个异步库如何兼容
    概述异步编程的重要性和不同的异步库介绍异步编程是现代软件开发中的重要概念,特别是在处理IO密集型任务时,它的作用尤为明显。不同的异步库为Python提供了多种不同的方式来实现异步编程。这些异步库包括但不限于asyncio、tornado、gevent等等。在本文中,我们将介绍这些不同的异步库及......
  • python学习笔记1(你好,python)
    虽然一直不会python,但也了解一些python的场景,比如爬取数据、数据挖掘、ai,今天开始从B站上系统学习一下今日学习笔记:1、python优点:易于读写和学习,英文描述方式专注于解决问题,代码少、有生产力易调试,解释型语言,只显示第一个错误开源免费,标准库很强大,社区也很强大2、缺点:内存占用率高,......
  • 如何使用java生成 Excel 股票图?
    要使用Java生成Excel股票图,可以使用POI库来操作Excel文件,使用JFreeChart库来生成股票图。首先,确保已经添加了以下依赖库:ApachePOIJFreeChartJCommon下面是一个简单的示例代码,用于生成一个包含股票图的Excel文件:importorg.apache.poi.ss.usermodel.*;importorg.apache.poi.xssf.......
  • 无涯教程-Java - min()函数
    该方法给出两个参数中较小的一个。参数可以是int,float,long,double。min()-语法此方法具有以下变体-doublemin(doublearg1,doublearg2)floatmin(floatarg1,floatarg2)intmin(intarg1,intarg2)longmin(longarg1,longarg2)min()-返回值此方法返回两个参......