Java调用python脚本

本文介绍了如何在Java中通过Runtime.getRuntime().exec()方法调用Python脚本,包括准备一个简单的Python反转单词程序,以及Java代码示例,展示了执行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java调用python脚本

最近也是刚开始学python,所以这里写了一个简单的小方法用Java来调用python脚本。后期再进行更新。

1、Java启动程序的方法

在Java中提供了两种方法来启动其他程序:
1. 使用Runtime的exec()方法
2. 使用ProcessBuilder的start()方法 。
本文中使用exec()方法来调用python脚本。

2、首先准备一个python程序

小编这里准备了一个最简单的python程序——单词反转。
直接上代码吧。

def reverse(str_list,start,end):
    while start<end:
        str_list[start], str_list[end] = str_list[end],str_list[start]
        start +=1
        end -=1

setence = ' Hello, how are you?   Fine.  '
str_list = list(setence)
i=0
while i<len(str_list):
    if str_list[i] !=' ':
        start = i
        end = start + 1
        while (end < len(str_list)) and str_list[end] !=' ':
            end +=1
        reverse(str_list, start, end -1)#先把每个单词进行反转
        i = end
    else:
        i += 1
str_list.reverse()#然后再把整个字符串进行反转
print(''.join(str_list))

3、通过Runtime.getRuntime()开启进程来执行脚本文件

Java代码如下:

//导入读取文件的包
import java.io.BufferedReader;
import java.io.InputStreamReader;
//定义类名
public class JavaConPython{
    //主函数入口
    public static void main(String[] args) {
        //定义新的字符串
        String[] arguments = new String[] {"python", "E:\\练习\\python\\单词反转.py"};
            try {
                //执行命令调用程序
                Process process = Runtime.getRuntime().exec(arguments);
                //取得命令结果的输出流,用一个读输出流类去读,用缓冲器读行  
                BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line = null; 
                ////直到读完为止 
                while ((line = in.readLine()) != null) {  
                   System.out.println(line);  
                }  
                in.close();  
                //调用Process.waitFor()来等待命令执行结束,获取执行结果
                int re = process.waitFor();  
                System.out.println(re);
            //抛出异常
            } catch (Exception e) {
                e.printStackTrace();
            }  
      }
}

4、实现结果

python中运行的结果:
这里写图片描述

eclipse中运行的结果:
这里写图片描述
在此需要注意的一点,java代码中的process.waitFor()返回值为0表示我们调用python脚本成功,返回值为1表示调用python脚本失败,这和我们通常意义上见到的0与1定义正好相反。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值