Windows平台Java调用cmd命令执行程序

第一种方式:利用cmd方式

      * 执行cmd命令 
      * 
      * @param command 
      * @throws IOException 
      */ 
     public static String executeCmd(String command) throws IOException { 
          System.out.println("Execute command : " + command); 
          Runtime runtime = Runtime.getRuntime(); 
          Process process = runtime.exec("cmd /c " + command); 
          BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8")); 
          String line = null; 
          StringBuilder build = new StringBuilder(); 
          while ((line = br.readLine()) != null) { 
              System.out.println(line); 
           build.append(line); 
          } 
          return build.toString(); 
     }

     public static void main(String[] args) throws IOException {
         String ECGFile="D:\\12ECG\\ECGAnalyser\\5.ECG";
         String path="D:\\12ECG\\ECGAnalyser\\";
         String type="1";
         String command="D:\\12ECG\\ECGAnalyser\\ECGAnalyser\t"+ECGFile+"\t"+path+"\t"+type;
         System.out.println(command);
         executeCmd(command); 
}

第二种方式使用ProcessBuilder调用cmd方式:

/** 
 * 启动应用程序 
 * 
 * @param programName 
 * @return 
 * @throws IOException 
 */ 
public static void startProgram(String programPath) throws IOException { 
 log.info("启动应用程序:" + programPath); 
 if (StringUtils.isNotBlank(programPath)) { 
  try { 
   String programName = programPath.substring(programPath.lastIndexOf("/") + 1, programPath.lastIndexOf(".")); 
   List<String> list = new ArrayList<String>(); 
   list.add("cmd.exe"); 
   list.add("/c"); 
   list.add("start"); 
   list.add("\"" + programName + "\""); 
   list.add("\"" + programPath + "\""); 
   ProcessBuilder pBuilder = new ProcessBuilder(list); 
   pBuilder.start(); 
  } catch (Exception e) { 
   e.printStackTrace(); 
   log.error("应用程序:" + programPath + "不存在!"); 
  } 
 } 
} 

第三种方式:使用Desktop启动应用程序

/** 
 * 启动应用程序 
 * 
 * @param programName 
 * @return 
 * @throws IOException 
 */ 
public static void startProgram(String programPath) throws IOException { 
 log.info("启动应用程序:" + programPath); 
 if (StringUtils.isNotBlank(programPath)) { 
  try { 
   Desktop.getDesktop().open(new File(programPath)); 
  } catch (Exception e) { 
   e.printStackTrace(); 
   log.error("应用程序:" + programPath + "不存在!"); 
  } 
 } 
} 

参考自http://www.jb51.net/article/80829.htm 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值