Cmd命令相信大家都不陌生,在系统上调用非常容易,win+R就行了,那小伙伴们知道怎么在java中调用cmd命令吗?在下面的文章将为你讲解详情。
例1:
public class Test1 { public static void main(String[] args) { try { Runtime.getRuntime() .exec("cmd.exe /c move E:\\xxx\\1 E:"); } catch (Exception e) { e.printStackTrace(); //printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。 } } }
例2:
public class Test2 { public static void main(String[] args) { Runtime run = Runtime.getRuntime(); try { Process process = run.exec("cmd.exe /c move E:\\xxx\\1 E:"); } catch (Exception e) { System.out.println("Error"); } } }
可以看到是Runtime.getRuntime().exec(commandStr)方法提供了调用执行cmd指令,其中:
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
CMD输出内容读取
1)、java程序通过java.lang.Process.getInputStream()来获取cmd执行后的结果信息;
2)、InputStream : 这是所有字节输入流的超类,一般都是使用它的子类:FileInputStream等,它能输出字节流;(字节流)
3)、InputStreamReader()是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符;(字节流-->字符流)
4)、BufferedReader()提供通用的缓冲方式文本读取,readLine读取一个文本行, 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。(读取字符流)
例:
try { Process p = Runtime.getRuntime() .exec("cmd.exe /c dir E:\\xxx"); InputStream inStream = p.getInputStream(); InputStreamReader inReader = new InputStreamReader(inStream); BufferedReader inBuffer = new BufferedReader(inReader); String s; while ((s = inBuffer.readLine()) != null) { System.out.println(s); } } catch (IOException e) { e.printStackTrace(); }
以上就是本篇文章的所有内容,小伙伴们理解了吧,在计算机里几乎没有什么不能连接的东西。如果你对一些java常见问题及解决方法还有疑问的话,欢迎关注本网站查看详情。
推荐阅读: