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

 更新时间:2016年03月12日 08:57:58   作者:qiaolevip  
这篇文章主要介绍了Windows系统中Java调用cmd命令及执行exe程序的方法,主要用到了IOException类,需要的朋友可以参考下

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

相关文章

  • Java Stream排序的实现方式面试精讲

    Java Stream排序的实现方式面试精讲

    这篇文章主要为大家介绍了Java Stream排序的实现方式面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 聊聊Mybatis中sql语句不等于的表示

    聊聊Mybatis中sql语句不等于的表示

    这篇文章主要介绍了Mybatis中sql语句不等于的表示方式,具有很好的参考价值,希望对大家有所帮助。
    2021-07-07
  • Java一元稀疏多项式计算器

    Java一元稀疏多项式计算器

    大家好,本篇文章主要讲的是Java一元稀疏多项式计算器,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • springmvc实现导出数据信息为excle表格示例代码

    springmvc实现导出数据信息为excle表格示例代码

    本篇文章主要介绍了springmvc实现导出数据信息为excle表格,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2017-01-01
  • eclipse+jdk安装以及会遇到的问题及解决方法

    eclipse+jdk安装以及会遇到的问题及解决方法

    这篇文章主要介绍了eclipse+jdk安装以及会遇到的问题+解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 详解Spring Cloud Eureka多网卡配置总结

    详解Spring Cloud Eureka多网卡配置总结

    本篇文章主要介绍了详解Spring Cloud Eureka多网卡配置总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • springboot +mybatis 使用PageHelper实现分页并带条件模糊查询功能

    springboot +mybatis 使用PageHelper实现分页并带条件模糊查询功能

    这篇文章主要介绍了springboot +mybatis 使用PageHelper实现分页并带条件模糊查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Java异步非阻塞编程的几种方式总结

    Java异步非阻塞编程的几种方式总结

    这篇文章主要介绍了Java异步非阻塞编程的几种方式总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • ByteArrayOutputStream与InputStream互相转换方式

    ByteArrayOutputStream与InputStream互相转换方式

    这篇文章主要介绍了ByteArrayOutputStream与InputStream互相转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot分页查询功能的实现方法

    SpringBoot分页查询功能的实现方法

    在实际的项目开发过程中,分页显示是很常见的页面布局,所以学习如何实现分页也是必要的,下面这篇文章主要给大家介绍了关于SpringBoot分页查询功能的实现方法,需要的朋友可以参考下
    2022-06-06

最新评论