Java学习——Java中实现调用Linux命令的一些方法

1 说明

先前的一个项目,之前没来得及整理相关材料,今天准备复试内容,看到这个项目正好借机整理。

2 Process()类与Runtime()类

要实现在Java程序中调用Linux命令或者cmd命令,首先要了解Java的这两个抽象类。
翻看Java API,如下。

2.1 Process()类

Java API(https://docs.oracle.com/javase/9/docs/api/java/lang/Process.html#Process–)中对于Process()类的描述:

Process provides control of native processes started by ProcessBuilder.start and Runtime.exec. The class provides methods for performing input from the process, performing output to the process, waiting for the process to complete, checking the exit status of the process, and destroying (killing) the process. The ProcessBuilder.start() and Runtime.exec methods create a native process and return an instance of a subclass of Process that can be used to control the process and obtain information about it.

翻译一下:

进程提供对由processbuilder.start和runtime.exec启动的本机进程的控制。类提供了执行进程输入、执行进程输出、等待进程完成、检查进程退出状态以及销毁(终止)进程的方法。processBuilder.start()和runtime.exec方法创建本机进程,并返回进程子类的实例,该实例可用于控制进程并获取有关进程的信息。

其提供的抽象方法如下:
在这里插入图片描述
而创建一个进程需要借助下面的Runtime()实现。贴出命令:

Process process = Runtime.getRuntime().exec( cmd );

2.2 Runtime()类

同样翻看API(https://docs.oracle.com/javase/9/docs/api/java/lang/Runtime.html)得知:
Runtime类表示虚拟机运行时的状态,用于封装虚拟机进程。每次使用Java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。若想在程序中获取一个Runtime实例,只能通过以下方法。

Runtime run = Runtime.getRuntime();

另外实现Java调用cmd还需要exec()方法,该方法用于执行一个cmd命令,从而实现与在命令行窗口中输入dos命令同样的效果。比如删除某个文件:

String cmd = "rm -rf " + StatusUtils.DIR ;//编辑命令
Process process = Runtime.getRuntime().exec(cmd);//使用exec()调用该命令

3 实例介绍

下面是一个在Java程序中删除文件的实际例子详解。

  1. 编辑命令

String cmd = "rm -rf " + StatusUtils.DIR ;

  1. 创建Runtime实例

Runtime run = Runtime.getRuntime();

  1. 创建进程

Process process = run.getRuntime().exec(cmd);

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值