Java(springboot)执行shell脚本

本文介绍了如何在Java SpringBoot应用中执行shell脚本,分别通过Runtime.getRuntime().exec()函数和ProcessBuilder进行演示。尽管Runtime.exec()简单直接,但参数处理和返回信息不够便利,而ProcessBuilder则更适合添加参数。对于复杂的命令,建议封装为单独的shell脚本并在项目中调用。同时,展示了如何将shell脚本执行功能封装到SpringBoot的服务层接口。
摘要由CSDN通过智能技术生成

基于Runtime.getRuntime().exec() 函数执行shell脚本

缺点: 参数与返回信息不方便处理。优点: 简单暴力。

demo

 public static void main()  {
    String  cmd = "ls -lh"
    system.out.println(Runtime.getRuntime().exec(cmd));
}

将shell脚本执行封装成一个函数 提供给controller调用  或者在main函数中使用 参数通过list[]列表传参

    @SneakyThrows
    public static String execShell(String[] cmd)  {
        StringBuilder sb = new StringBuilder();
            Process pro = Runtime.getRuntime().exec(cmd);
            pro.waitFor();
            InputStream in = pro.getInputStream();
            String line = "";
            BufferedReader read = new BufferedReader(new InputStreamReader(in));
            while ((line = read.readLine()) != null) {
                sb.append(line).append('\n');
            }
        return sb.toString();
    }

    //通过接口来访问shell脚本的执行情况
    @Request
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村长在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值