Java启动本机应用程序EXE的三种方式

Java代码  
  1. // 第一种方式:利用cmd方式  
  2. /** 
  3.  * 执行cmd命令 
  4.  *  
  5.  * @param command 
  6.  * @throws IOException 
  7.  */  
  8. public static String executeCmd(String command) throws IOException {  
  9.     log.info("Execute command : " + command);  
  10.     Runtime runtime = Runtime.getRuntime();  
  11.     Process process = runtime.exec("cmd /c " + command);  
  12.     BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));  
  13.     String line = null;  
  14.     StringBuilder build = new StringBuilder();  
  15.     while ((line = br.readLine()) != null) {  
  16.         log.info(line);  
  17.         build.append(line);  
  18.     }  
  19.     return build.toString();  
  20. }  
  21.   
  22. executeCmd(start "AXAdWebBrowser" "D:\AXAdsBrowser\AXAdWebBrowser.exe");  

 

 

 

Java代码  
  1. // 第二种方式:利用ProcessBuilder调用cmd方式  
  2. /** 
  3.  * 启动应用程序 
  4.  *  
  5.  * @param programName 
  6.  * @return 
  7.  * @throws IOException 
  8.  */  
  9. public static void startProgram(String programPath) throws IOException {  
  10.     log.info("启动应用程序:" + programPath);  
  11.     if (StringUtils.isNotBlank(programPath)) {  
  12.         try {  
  13.             String programName = programPath.substring(programPath.lastIndexOf("/") + 1, programPath.lastIndexOf("."));  
  14.             List list = new ArrayList();  
  15.             list.add("cmd.exe");  
  16.             list.add("/c");  
  17.             list.add("start");  
  18.             list.add("\"" + programName + "\"");  
  19.             list.add("\"" + programPath + "\"");  
  20.             ProcessBuilder pBuilder = new ProcessBuilder(list);  
  21.             pBuilder.start();  
  22.         } catch (Exception e) {  
  23.             e.printStackTrace();  
  24.             log.error("应用程序:" + programPath + "不存在!");  
  25.         }  
  26.     }  
  27. }  

 

 

 

Java代码  
  1. // 第三种方式:使用Desktop启动应用程序  
  2. /** 
  3.  * 启动应用程序 
  4.  *  
  5.  * @param programName 
  6.  * @return 
  7.  * @throws IOException 
  8.  */  
  9. public static void startProgram(String programPath) throws IOException {  
  10.     log.info("启动应用程序:" + programPath);  
  11.     if (StringUtils.isNotBlank(programPath)) {  
  12.         try {  
  13.             Desktop.getDesktop().open(new File(programPath));  
  14.         } catch (Exception e) {  
  15.             e.printStackTrace();  
  16.             log.error("应用程序:" + programPath + "不存在!");  
  17.         }  
  18.     }  
  19. }  

你可能感兴趣的:(Java启动本机应用程序EXE的三种方式)