Windows平台Java调用cmd命令执行程序,一次执行多条

转自https://blog.csdn.net/shenxiaomo1688/article/details/79196625

第一种方式:利用Runtime执行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 list = new ArrayList(); 
   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 + "不存在!"); 
  } 
 } 
} 

 

转载自https://blog.csdn.net/wang864676212/article/details/82184024

aa && bb
means:执行aa,成功后再执行bb

ex:node a.js && node b.js

如果a.js运行失败则b.js不会再运行

aa || bb
means:先执行aa,若执行成功则不再执行bb,若失败则再执行bb

ex:node a.js || node b.js

如果a.js运行失败则b.js再运行,如果a.js运行成功则b.js不再运行

aa & bb
means:先执行aa再执行bb,无论aa是否成功
ex: node a.js & node b.js

先运行a.js运行,不管运行a.js文件是否报错,b.js接着运行

你可能感兴趣的:(学学学Java)