CSDN博客

img yaa2004

java 运行 dos 命令

发表于2008/9/28 10:42:00  733人阅读

import   java.util.*;  
  import   java.io.*;  
   
  class   StreamGobbler   extends   Thread  
  {  
          InputStream   is;  
          String   type;  
          Process   p;  
           
          StreamGobbler(InputStream   is,   String   type)  
          {  
                  this.is   =   is;  
                  this.type   =   type;  
          }  
           
          StreamGobbler(Process   proc,   String   type)  
          {  
          p   =   proc;  
          this.type   =   type;  
          is   =   proc.getInputStream();  
          }  
          public   void   run()  
          {  
                  try  
                  {  
                          InputStreamReader   isr   =   new   InputStreamReader(is);  
                          BufferedReader   br   =   new   BufferedReader(isr);  
                          String   line=null;  
                          while   (   (line   =   br.readLine())   !=   null)  
                                  System.out.println(type   +   ">"   +   line);          
                          }   catch   (IOException   ioe)  
                              {  
                                  ioe.printStackTrace();      
                              }  
          }  
  }  
   
  public   class   GoodWindowsExec  
  {  
          public   static   void   main(String   args[])  
          {  
                  if   (args.length   <   1)  
                  {  
                          System.out.println("USAGE:   java   GoodWindowsExec   <cmd>");  
                          System.exit(1);  
                  }  
                   
                  try  
                  {                          
                          String   osName   =   System.getProperty("os.name"   );  
                          String[]   cmd   =   new   String[3];  
   
                          if(   osName.equals(   "Windows   2000"   )   )  
                          {  
                                  cmd[0]   =   "cmd.exe"   ;  
                                  cmd[1]   =   "/C"   ;  
                                  cmd[2]   =   args[0];  
                          }  
                          else   if(   osName.equals(   "Windows   95"   )   )  
                          {  
                                  cmd[0]   =   "command.com"   ;  
                                  cmd[1]   =   "/C"   ;  
                                  cmd[2]   =   args[0];  
                          }  
                           
                          Runtime   rt   =   Runtime.getRuntime();  
                          System.out.println("Execing   "   +   cmd[0]   +   "   "   +   cmd[1]    
                                                                +   "   "   +   cmd[2]);  
                          Process   proc   =   rt.exec(cmd);  
                          //   any   error   message?  
                        //   StreamGobbler   errorGobbler   =   new    
                          //         StreamGobbler(proc.getErrorStream(),   "ERROR");                          
                           
                          //   any   output?  
                          StreamGobbler   outputGobbler   =   new    
                                  StreamGobbler(proc,   "OUTPUT");  
                                   
                          //   kick   them   off  
                          //errorGobbler.start();  
                          outputGobbler.start();  
                                                                           
                          //   any   error???  
                          int   exitVal   =   proc.waitFor();  
                          System.out.println("ExitValue:   "   +   exitVal);                  
                  }   catch   (Throwable   t)  
                      {  
                          t.printStackTrace();  
                      }  
          }  
  }  
0 0

相关博文

我的热门文章

img
取 消
img