使用java执行bat、sh脚本文件

在工作中,由于需求,需要完成让java去调用.bat文件和.sh文件的操作,接下来开始编码

此处用到了糊涂工具类

maven如下

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.10</version>
</dependency>
public void run(){
        String file = "D:\\pan";
        String cmd = "run";
        Runtime runtime = Runtime.getRuntime();
        Process exec = null;
        if (FileUtil.isWindows()){
            exec = runtime.exec("cmd /c cd " + file + " && " + cmd + ".bat");
        }else {
            exec = runtime.exec("bash " + cmd + ".sh",null,new File(file));
        }
        exec.waitFor();
        //取得命令结果的输出流
        InputStream is = exec.getInputStream();
        //用一个读输出流类去读
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        String line = null;
        while((line = br.readLine())!=null){
            System.out.println(line);
        }
        is.close();
        isr.close();
        br.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

由此代码来执行bat或sh脚本文件(PS:糊涂工具包用不用无所谓,只是用来判断是否为windows系统的)

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过Java调用.sh脚本,你可以使用Runtime类的exec方法来执行shell命令。可以使用以下代码来执行.sh脚本: String[] cmd = { "sh", "/path/to/script.sh", "parameter1", "parameter2" }; try { Process p = Runtime.getRuntime().exec(cmd); p.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println("line = " + line); } reader.close(); } catch (Exception e) { e.printStackTrace(); } 在这段代码中,我们定义了一个字符串数组cmd,其中第一个元素是"sh",表示使用shell来执行命令,第二个元素是"/path/to/script.sh",表示要执行的.sh脚本的路径,后面的参数可以根据需要进行更改。然后通过Runtime类的exec方法执行这个命令,最后通过BufferedReader来读取命令的输出并打印出来。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [java调用shell脚本传参数](https://blog.csdn.net/weixin_57463074/article/details/127802692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [使用java执行batsh脚本文件](https://blog.csdn.net/gxy6661159/article/details/128615151)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值