[JAVA基础]使用Java语言调用批处理命令的方法(Windows和Linux平台)

[JAVA基础]使用Java语言调用批处理命令的方法(Windows和Linux平台)

简介

调用工具的介绍

Java为我们提供了Runtime.GetRuntime.excu()和ProcessBuilder两个方法来开启一个子线程执行命令,我们可以在其中输入指令来实现批处理命令或者脚本的调用。
本篇也是主要介绍了使用上述方法来调用cmd、shell命令或者其脚本文件

在Windows下的调用

Windows下主要还是cmd命令和脚本文件的使用

直接使用命令

1.对于一般的简单命令,使用Runtime.getRuntime().excu(“cmd”)即可,其中的cmd就是要执行的命令
比如我要执行下面这行代码

Process p=Runtime.getRuntime().excu("cmd /c start dir")

一个列举当前目录内容的命令,就会弹出cmd框并执行该命令
cmd命令
需要注意到的是执行excu方法的时候会返回一个Process对象,他是一个直接继承于Object的类,可以对该进程进行输入输出流操控或者进程的关闭一类的任务。

2.对于条件比较复杂的命令,我们可能需要用到 ProcessBuilder这个类,和runtime直接执行字符串的方法不同的是,
Builder的传入参数是一个由参数和命令组成的数组,同时可以配置命令运行时的环境
比如下面这条命令

Process p=new ProcessBuilder(Arrays.asList("cmd","/c","start","dir"));

能够实现和脚本一样的效果,其优点是不用费心去拼接字符串,对于命令参数较多的语句更加友好。

调用bat脚本

调用bat脚本的过程其实也是发出一个cmd命令的过程,只不过这时候我们主要的命令都写在bat脚本里了,java程序只是起到一个调用该脚本的功能。
比如我们写这样一个脚本

@echo off
dir

再使用java去调这个脚本

Process p=Runtime.getRuntime("cmd /c start path/s.bat").start()# path为文件路径

也可以起到同样的效果。

在Linux下的调用

经过测试发现,在LInux下的命令调用和Windows下大同小异。都可以通过上述的两个方法来实现。只是在使用Linux时,没有cmd这样的批处理窗口来启动命令,而是可以直接将命令运行

直接使用命令

Process p=Runtime.getRuntime("java -jar *.jar").start()

调用sh脚本

Process p=Runtime.getRuntime("path/*.sh").start()

需要注意的是在使用sh脚本文件的时候需要为sh脚本文件添加可执行的权限

chmod +x path/*.sh
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值