Java如何执行cmd命令

  介绍

这篇文章主要讲解了Java如何执行cmd命令,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

一般Java在执行cmd命令时,通常是使用Runtime.getRuntime.exec(命令)来执行的,这个方法有两种细节要注意:

1。一般执行方法,代码如下,这种方法有时执行exe时会卡在那里。

//一般的执行方法,有时执行exe会卡在那支撑要执行的命令
  公共静态无效执行(字符串支撑)抛出IOException InterruptedException {
  运行时的运行时=Runtime.getRuntime ();//获取运行时实例//执行命令
  尝试{
  String[]命令={“cmd",“/c",支撑};
  过程过程=runtime.exec(命令);//标准输入流(必须写在等待之前)
  字符串inStr=consumeInputStream (process.getInputStream ());//标准错误流(必须写在等待之前)
  字符串errStr=consumeInputStream (process.getErrorStream ());
  新ProcessClearStream (process.getInputStream (),“INFO") .start ();
  新ProcessClearStream (process.getErrorStream (),“ERROR") .start ();
  int proc=process.waitFor ();
  InputStream errorStream=process.getErrorStream ();//若有错误信息则输出
  如果(proc==0) {
  System.out.println(“执行成功“);
  其他}{
  System.out.println(“执行失败“;+ errStr);
  }
  }捕捉(IOException | InterruptedException e) {
  e.printStackTrace ();
  }
  }/* *
  *消费inputstream,并返回
  */公共静态字符串consumeInputStream (InputStream)抛出IOException {
  BufferedReader br=new BufferedReader(新InputStreamReader(是,“GBK"));
  字符串年代;
  StringBuilder某人=new StringBuilder ();
  而((s=br.readLine ()) !=null) {
  System.out.println(年代);
  sb.append(年代);
  }
  返回sb.toString ();
  }

2。第二种方法是先生成一个缓存文件,用来缓存执行过程中输出的信息,这样在执行命令的时候不会卡。代码如下:

//这个方法比第一个好,执行时不会卡支撑要执行的命令
  公共静态孔隙aaa(字符串斯塔姆){
  BufferedReader br=零;
  尝试{
  文件文件=新文件(“D: \ \ daemonTmp");
  文件临时=新文件(“D: \ \ daemonTmp \ \ temp.tmp");//新建一个用来存储结果的缓存文件
  如果(! file.exists ()) {
  file.mkdirs ();
  }
  如果(! tmpFile.exists ()) {
  tmpFile.createNewFile ();
  }
  ProcessBuilder pb=new ProcessBuilder () .command (“cmd.exe",“/c",斯塔姆).inheritIO ();
  pb.redirectErrorStream(真正);//这里是把控制台中的红字变成了黑字,用通常的方法其实获取不到,控制台的结果是pb.start()方法内部输出的。
  pb.redirectOutput(临时);//把执行结果输出。
  .waitFor pb.start()();//等待语句执行完成,否则可能会读不到结果。
  InputStream=新FileInputStream(临时);
  br=new BufferedReader(新InputStreamReader ());
  字符串行=零;
  在((=br.readLine行())!=null) {
  System.out.println(线);
  }
  br.close ();
  br=零;
  tmpFile.delete();//卸磨杀驴。
  System.out.println(“执行完成“);
  }捕捉(异常e) {
  e.printStackTrace ();
  最后}{
  如果(br !=null) {
  尝试{
  br.close ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  }
  }

看完上述内容,是不是对Java如何执行cmd命令有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

Java如何执行cmd命令