Java魔法堂:找外援的利器——Runtime.exec详解

本文详细介绍了Java中的Runtime.exec方法,用于调用外部程序并重定向其输入、输出和错误流。文章通过实例展示了如何执行命令、设置环境变量和工作目录,并提醒了使用时的注意事项,如避免缓冲池满导致程序暂停。最后,作者提醒读者在外部程序执行完毕后要确保进程关闭,以防Java进程阻塞。
摘要由CSDN通过智能技术生成

一、前言                                

 Java虽然五脏俱全但总有软肋,譬如获取CPU等硬件信息,当然我们可以通过JNI调用C/C++来获取,但对于对C/C++和Windows API不熟的码农是一系列复杂的学习和踩坑过程。那能不能通过简单一些、学习成本低一些的方式呢?答案是肯定的,在功能实现放在首位的情况下,借他山之石是最简洁有力的做法。而 Runtime.exec方法 就为我们打开这么的一条路了。

 

二、认识 java.lang.Runtime.exec方法                     

  作用:用于调用外部程序,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。功能就是和windows的“运行”一样啦。

  

  方法重载:

      exec(String command) ,调用外部程序,入参command为外部可执行程序的启动路径或命令。

      exec(String[] cmdArray) ,调用外部程序,入参cmdArray的元素将组合成为一条完整的外部可执行程序的启动路径或命令。

      exec(String command, String[] envp) ,在调用外部程序之前设置系统环境变量,该变量仅供command入参使用,envp每个元素为一个系统环境变量,并且字符串格式为“环境变量名=环境变量值”。

       exec(String command, String[] envp, File dir) , 除了设置系统环境变量外,还通过入参dir设置当前工作目录。

  实例 —— 在当前目录执行dir命令,并将结果保存到c:\dir.txt文本文件中:

  前提:假设当前用户的家目录为c:\user\fsjohnhuang

  c:\user\fsjohnhuang下的目录结构

c:\user\fsjohnhuang 
|--
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值