源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Windows系统中Java调用cmd命令及执行exe程序的方法

  • 时间:2020-12-02 10:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Windows系统中Java调用cmd命令及执行exe程序的方法
[b]Java调用cmd命令,并输出显示信息: [/b]
package com.anxin.cmd.test; 
 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 

public class Command { 
 
 public static void main(String[] args) { 
  try { 
   Runtime rt = Runtime.getRuntime(); 
   Process pr = rt.exec("cmd /c dir"); // cmd /c calc 
   // Process pr = rt.exec("D:\\xunlei\\project.aspx"); 
 
   BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream(), "GBK")); 
 
   String line = null; 
 
   while ((line = input.readLine()) != null) { 
    System.out.println(line); 
   } 
 
   int exitVal = pr.waitFor(); 
   System.out.println("Exited with error code " + exitVal); 
 
  } catch (Exception e) { 
   System.out.println(e.toString()); 
   e.printStackTrace(); 
  } 
 } 
} 

[b]Java启动本机应用程序EXE的三种方式:[/b] [b]第一种方式:利用cmd方式  [/b]
/** 
 * 执行cmd命令 
 * 
 * @param command 
 * @throws IOException 
 */ 
public static String executeCmd(String command) throws IOException { 
 log.info("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) { 
  log.info(line); 
  build.append(line); 
 } 
 return build.toString(); 
} 
 
executeCmd(start "AXAdWebBrowser" "D:\AXAdsBrowser\AXAdWebBrowser.exe"); 
[b]第二种方式:利用ProcessBuilder调用cmd方式 [/b]
/** 
 * 启动应用程序 
 * 
 * @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 + "不存在!"); 
  } 
 } 
} 
[b]第三种方式:使用Desktop启动应用程序  [/b]
/** 
 * 启动应用程序 
 * 
 * @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 + "不存在!"); 
  } 
 } 
} 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部