关于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");可以成功  

 

 

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

当要调用一个外部程序的时候,java提供了exec方法,具体用法是:Runtime.getRunTime.exec("cmd /C Start mailto: abc@xxx.com").其中cmd ...

Java 使用Runtime.getRuntime.exec 和 ProcessBuilder 调用外部命令

这几天在做来到公司以来的第一个项目,一个可以生成statcvs report的web小工具 昨天一天纠结于调用外部命令后程序阻塞的问题,直到刚刚终于解决。 我要调用的外部指令是 cvs l...
  • xy5811
  • xy5811
  • 2011年09月02日 14:50
  • 3373

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

启动 Windows 命令解释器的一个新实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OF...

Java调用批处理文件,Runtime.getRuntime().exec参数,示例

//测试结果:能打开,但是需要关闭文件才能中止程序。 //String[] cmd = {"notepad.exe","F:\\long_cennect.txt"}; //Process proces...

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

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

java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行

在java中调用操作系统的程序时,可以使用java.lang.Runtime.getRuntime().exec() 来实现,但是这个方法在调用命令后就直接返回当前线程了;程序设计时,有时候需要在等待...

Applet虽签名,但是Runtime.getRuntime().exec(cmd)异常:java.security.AccessControlException: access deni

注意:本文出自 “阿飞”的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.csdn.net/faye0412/article/details/7037078 ...

Java中Runtime.getRuntime().exec()错误:Cannot allocate memory!

用java的Runtime.getRuntime().exec(cmd)方式,执行aapt命令行解包apk文件时,遇到“Cannot allocate memory”的错误。 但是直接在linu...

使用Runtime.getRuntime().exec()的方法调用本地mysqldump.exe备份还原数据库(路径中含有空格和数字)的方法

这个问题花费我两天时间,上网搜中文的资料大都换另一种方式解决的。说是在java中cmd不支持重定向,采用的另一种方式是得到Runtime.getRuntime().exec()的输入流,然后写到一个文...
  • CROSSCI
  • CROSSCI
  • 2012年07月20日 18:41
  • 4344

使用Runtime.getRuntime().exec()方法的几个陷阱 (转)

Runtime 封装着java程序的运行时环境。通过Runtime实例,java应用能够与其运行的环境连接。Runtime在jvm中保持一个单例,所以不能通过Runtime类的构造函数。只能通过Run...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于java Runtime.getRunTime.exec(String command)的使用
举报原因:
原因补充:

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