关于java Runtime.getRunTime.exec(String command)的使用

转载 2012年03月30日 10:09:03

原文地址:http://sealbird.iteye.com/blog/1202214

 

Java代码  收藏代码
  1. 2008-09-26 19:44当要调用一个外部程序的时候,java提供了exec方法,具体用法是:Runtime.getRunTime.exec("cmd /C Start mailto: abc@xxx.com").其中cmd /c是调用cmd下的start命令,它相当于对一个文件双击。也可以用Runtime.getRunTime.exec("c:\\EXCEl.exe d:\\a.xls")来打开D盘下的excel文件.  
  2.   
  3.   
  4. import java.io.BufferedReader;  
  5. import java.io.IOException;  
  6. import java.io.InputStream;  
  7. import java.io.InputStreamReader;  
  8.   
  9. public   class   test   {  
  10.   
  11. /**  
  12.    *   @param   args  
  13.    */   
  14. public   static   void   main(String[]   args)   {   
  15. //    TODO   Auto-generated   method   stub   
  16. Runtime rn=Runtime.getRuntime();   
  17. Process p= null;   
  18. try {   
  19. //p = rn.exec( "cmd   /k   dir ");   
  20.    p = rn.exec( "C:\\Windows\\system32\\notepad.exe f:\\gg.txt");   
  21.   
  22. InputStream   in   =p.getInputStream();   
  23. BufferedReader   br   =   new   BufferedReader(new   InputStreamReader(in));   
  24. String   str   =   null;   
  25. while((str=br.readLine())!= null){   
  26. System.out.println(str);   
  27. }   
  28. br.close();   
  29. }   catch   (Exception   e)   {   
  30. System.out.println( "Error   exec   notepad ");   
  31. }   
  32. }   
  33. }  
  34.   
  35.   
  36. /* 
  37. public class Test { 
  38.  
  39. /** 
  40. * @param args 
  41. * @throws IOException  
  42. * @throws InterruptedException  
  43. */  
  44. /*public static void main(String[] args) throws IOException, InterruptedException  
  45. { 
  46.    // TODO 自动生成方法存根 
  47.    Process process = Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office12\\winword.exe f:\\gg.docx");  
  48.    //process.waitFor( );cmd /c java f:\\T 
  49.    /*String ls_1;  
  50.    Process process = Runtime.getRuntime().exec("cmd /c dir \\windows");  
  51.    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
  52.    while ( (ls_1=bufferedReader.readLine()) != null)  
  53.    System.out.println(ls_1); */  
  54.    //C:\\Program Files\\Microsoft Office\\Office12\\winword.exe  
  55. //   C:\Program Files\Microsoft Office\Office12\winword.exe  
  56. /*   
  57.    process.waitFor( );  
  58.    //process.destroy(); 
  59.  
  60. } 
  61.  
  62. }*/  
  63.   
  64. Process process = Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc");   
  65.   
  66. 这样的调用是没有问题~  
  67.   
  68.   
  69. 真正最正确的用BAT运行JAVA不显示DOS窗口(连闪一下都不闪)   
  70.   
  71. 今天写一个独立于RCP项目之外的SWT小工具,需要用批处理启动,偶写了一个批处理没闪DOS窗口,看得同事一愣一愣的。于是赶快把自己当年一点心得和大家分享下。  
  72.   
  73.   
  74. 很多朋友在WINDOWS下会用批处理去启动自己的java程序,  
  75.   
  76. 一般的写法是  
  77.   
  78. 运行class:  
  79.   
  80. java xx  
  81.   
  82.   
  83. 运行jar:  
  84.   
  85. java -jar xxx.jar  
  86.   
  87. 但是这样运行会有一个恶心的对话框停在那直到我们关闭程序。  
  88.   
  89.   
  90.   
  91. 于是很多人说可以这样  
  92.   
  93. 运行class:  
  94.   
  95. start javaw xx  
  96.   
  97. 运行jar:  
  98.   
  99. start javaw -jar xxx.jar   
  100.   
  101.   
  102. 这种方法DOS窗口还是会一闪而过,这就算解决问题了吗?!网上很多人说是的.  
  103.   
  104. 对我们这种追求完美的人来说闪一下还是不能接受滴.  
  105.   
  106.   
  107. 于是终极解决方案出现了!  
  108.   
  109. 那就是在批处理第一行加上@echo off  
  110.   
  111.   
  112. 这样我们的批处理就变成了  
  113.   
  114.   
  115. 运行class:  
  116.   
  117. @echo off  
  118.   
  119. start javaw xx  
  120.   
  121.   
  122. 运行jar:  
  123.   
  124. @echo off  
  125.   
  126. start javaw -jar xxx.jar   
  127.   
  128.   
  129.   
  130. 快试试吧,绝对不闪了。哈哈哈。  
  131.   
  132.   
  133. 解释一下  
  134.   
  135. echo off  
  136.   
  137. 表示在此语句后所有运行的命令都不显示命令行本身   
  138.   
  139. @ 表示运行时不显示本命令行  
  140.   
  141.   
  142. public class TestCmd {   
  143. public TestCmd() {   
  144. }   
  145.   
  146. public static void main(String args[]) {   
  147. try {   
  148.   
  149. // 登网站   
  150. Process process = Runtime.getRuntime().exec(   
  151. "cmd.exe /c start http://www.hao123.net/");   
  152.   
  153. // 使用用Ping命令   
  154.   
  155. Process ee = Runtime.getRuntime().exec(   
  156. "cmd.exe /c start ping 10.5.2.19");   
  157.   
  158. catch (Exception e) {   
  159. e.printStackTrace();   
  160. }   
  161. }   
  162. }   
  163.   
  164. 运行这个类你会看到效果   
  165. 这个是运行了ping命令   
  166.   
  167.   
  168. 我使用Process pc = Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");可以成功  

 

 

Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现

前言日常java开发中,有时需要通过java运行其它应用功程序,比如shell命令等。jdk的Runtime类提供了这样的方法。首先来看Runtime类的文档, 从文档中可以看出,每个java程序只会...
  • yiduyangyi
  • yiduyangyi
  • 2017年04月20日 16:07
  • 2605

Java调用Runtime.getRuntime().exec(commandStr)来调用cmd执行指令

启动 Windows 命令解释器的一个新实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OF...
  • yzj578492228
  • yzj578492228
  • 2016年01月25日 10:32
  • 2640

Android Runtime.getRuntime().exec() 使用方法

Android 可以通过Runtime.getRuntime().exec()方法来执行命令或者创建进程。 1. Runtime.getRuntime().exec共有六个重载方法: publi...
  • wangbaochu
  • wangbaochu
  • 2015年04月08日 15:05
  • 10635

java Runtime.getRuntime().exec 调用系统脚本/命令注意事项

使用管道命令执行带密码执行sudo命令,在java中老是不成功今天找到方法解决了顺便整理了一下java Runtime.getRuntime().exec 调用脚本命令的注意事项。 使用管道...
  • Q1059081877Q
  • Q1059081877Q
  • 2015年08月28日 13:17
  • 6852

java Runtime 解析

java Runtime 解析
  • xinyuan_java
  • xinyuan_java
  • 2016年03月24日 16:47
  • 995

windows下通过Runtime.getRuntime().exec.()执行linuxshell脚本

windows下通过Runtime.getRuntime().exec.()执行linuxshell脚本 开源中国 发表于 2014-08-26 19:48:12 ...
  • xiaoxiaoniaoge
  • xiaoxiaoniaoge
  • 2015年09月16日 21:43
  • 2132

Runtime.getRuntime().exec如何执行多行命令

作者:韩梦飞沙 QQ:313134555 Runtime.getRuntime().exec如何执行多行命令,坐等方法_百度知道...
  • yue31313
  • yue31313
  • 2016年07月22日 13:39
  • 301

关于java Runtime.getRunTime.exec(String command)的使用

当要调用一个外部程序的时候,java提供了exec方法,具体用法是:Runtime.getRunTime.exec("cmd /C Start mailto: abc@xxx.com").其中cmd ...
  • jacky825
  • jacky825
  • 2011年03月28日 17:00
  • 765

Runtime.getRunTime.exec(String command)的使用

原文链接 http://blog.csdn.net/zmyde2010/archive/2011/01/08/6123987.aspx Android: 通过Runtime.getRuntime()...
  • xiaodanpeng
  • xiaodanpeng
  • 2012年12月28日 10:42
  • 905

Runtime.getRuntime().exec方法

Runtime.getRuntime().exec()方法主要用于执行外部的程序或命令。 Runtime.getRuntime().exec共有六个重载方法: public Pro...
  • u012398902
  • u012398902
  • 2015年12月02日 12:05
  • 470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于java Runtime.getRunTime.exec(String command)的使用
举报原因:
原因补充:

(最多只允许输入30个字)