Java怎么执行cmd命令及要注意哪些事项
这篇文章主要介绍了Java怎么执行cmd命令及要注意哪些事项的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么执行cmd命令及要注意哪些事项文章都会有所收获,下面我们一起来看看吧。
通常 Java 执行 Windows 或者 Linux 的命令时,都是使用Runtime.getRuntime.exec(command)来执行的
eg1: 执行命令publicstaticvoidexecCommand(){try{Runtimeruntime=Runtime.getRuntime();//打开任务管理器,exec方法调用后返回Process进程对象Processprocess=runtime.exec("cmd.exe/ctaskmgr");//等待进程对象执行完成,并返回“退出值”,0为正常,其他为异常intexitValue=process.waitFor();System.out.println("exitValue:"+exitValue);//销毁process对象process.destroy();}catch(IOException|InterruptedExceptione){e.printStackTrace();}}eg2: 执行命令,并获取正常输出与错误输出
publicstaticvoidexecCommandAndGetOutput(){try{Runtimeruntime=Runtime.getRuntime();Processprocess=runtime.exec("cmd.exe/cipconfig");//输出结果,必须写在waitFor之前StringoutStr=getStreamStr(process.getInputStream());//错误结果,必须写在waitFor之前StringerrStr=getStreamStr(process.getErrorStream());intexitValue=process.waitFor();//退出值0为正常,其他为异常System.out.println("exitValue:"+exitValue);System.out.println("outStr:"+outStr);System.out.println("errStr:"+errStr);process.destroy();}catch(IOException|InterruptedExceptione){e.printStackTrace();}}publicstaticStringgetStreamStr(InputStreamis)throwsIOException{BufferedReaderbr=newBufferedReader(newInputStreamReader(is,"GBK"));StringBuildersb=newStringBuilder();Stringline;while((line=br.readLine())!=null){sb.append(line);sb.append("\n");}br.close();returnsb.toString();}
process对象可以通过操作数据流,对执行的命令进行参数输入、获取命令输出结果、获取错误结果
getInputStream()为什么是获取输出数据?getOutputStream()为什么是获取输入数据?这是因为 input 和 output 是__针对当前调用 process 的程序而言的__,即
要获取命令的输出结果,就是被执行命令的结果 输入到我们自己写的程序中,所以用getInputStream()
要往别的程序输入数据,就是我们程序要输出,所以此时用getOutputStream()
附java调用cmd命令实现各种操作在java编程中,有时候我们只需要使用自己的程序或者调用第三方插件就可以完成一些工作,但是因为个人突发奇想,虽然cmd命令玩的不是很差,但是是否可以直接将命令写到java程序中,在自己的程序中进行对电脑内部的一个控制呢?举个例子可能更方便理解,因为晚上要下载资源文件,但是我又想睡觉,那么电脑一直开着不仅仅对电脑有损耗,而且可能影响我的睡眠质量,虽然我知道cmd的设置关机命令,但是我可以写一个java可执行片段,然后用这个来进行对电脑的定时关机操作,这样以后我如果需要设置关机就可以直接调用自己的程序了,虽然市面上有专门的小工具,但是自己写的东西总会带来一点小傲娇。具体的操作希望大家自行研究,但是要知道cmd命令可以做很多的事情,所以如何合理的在java中使用cmd命令是很有趣的:
publicstaticvoidmain(String[]args){/*获取cmd命令*/try{Processpro=Runtime.getRuntime().exec("cmd/ccalc");//添加要进行的命令,"cmd/ccalc"中calc代表要执行打开计算器,如何设置关机请自己查找cmd命令BufferedReaderbr=newBufferedReader(newInputStreamReader(pro.getInputStream()));//虽然cmd命令可以直接输出,但是通过IO流技术可以保证对数据进行一个缓冲。Stringmsg=null;while((msg=br.readLine())!=null){System.out.println(msg);}}catch(IOExceptionexception){}/*cmd/cdir是执行完dir命令后关闭命令窗口cmd/kdir是执行完dir命令后不关闭命令窗口cmd/cstartdir会打开一个新窗口后执行dir命令,原窗口会关闭cmd/kstartdir会打开一个新窗口后执行dir命令,原窗口不会关闭cmd/?查看帮助信息*/}
在这里要提醒大家的是,cmd命令融合到程序中有时候往往是有些实际用途的,比如我的项目中要求一旦用户做了某种操作就需要关机,那么这就是一种简单的使用。
关于“Java怎么执行cmd命令及要注意哪些事项”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java怎么执行cmd命令及要注意哪些事项”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。