首页 > 编程 > Java > 正文

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

2019-11-26 14:30:24
字体:
来源:转载
供稿:网友

Java调用cmd命令,并输出显示信息:

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();   }  } } 

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

第一种方式:利用cmd方式 

/**  * 执行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"); 

第二种方式:利用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 + "不存在!");   }  } } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表