您的当前位置:首页正文

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

2023-03-24 来源:客趣旅游网
Windows系统中Java调⽤cmd命令及执⾏exe程序的⽅法

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:\\ unlei\\\\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 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 + \"不存在!\"); } } }

因篇幅问题不能全部显示,请点此查看更多更全内容