`
sealbird
  • 浏览: 570510 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

    博客分类:
  • JAVA
 
阅读更多
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文件.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public   class   test   {

/** 
   *   @param   args 
   */ 
public   static   void   main(String[]   args)   { 
//    TODO   Auto-generated   method   stub 
Runtime rn=Runtime.getRuntime(); 
Process p= null; 
try { 
//p = rn.exec( "cmd   /k   dir "); 
   p = rn.exec( "C:\\Windows\\system32\\notepad.exe f:\\gg.txt"); 

InputStream   in   =p.getInputStream(); 
BufferedReader   br   =   new   BufferedReader(new   InputStreamReader(in)); 
String   str   =   null; 
while((str=br.readLine())!= null){ 
System.out.println(str); 
} 
br.close(); 
}   catch   (Exception   e)   { 
System.out.println( "Error   exec   notepad "); 
} 
} 
}


/*
public class Test {

/**
* @param args
* @throws IOException 
* @throws InterruptedException 
*/
/*public static void main(String[] args) throws IOException, InterruptedException 
{
   // TODO 自动生成方法存根
   Process process = Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office12\\winword.exe f:\\gg.docx"); 
   //process.waitFor( );cmd /c java f:\\T
   /*String ls_1; 
   Process process = Runtime.getRuntime().exec("cmd /c dir \\windows"); 
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
   while ( (ls_1=bufferedReader.readLine()) != null) 
   System.out.println(ls_1); */
   //C:\\Program Files\\Microsoft Office\\Office12\\winword.exe
//   C:\Program Files\Microsoft Office\Office12\winword.exe
/*  
   process.waitFor( ); 
   //process.destroy();

}

}*/

Process process = Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc"); 

这样的调用是没有问题~


真正最正确的用BAT运行JAVA不显示DOS窗口(连闪一下都不闪) 

今天写一个独立于RCP项目之外的SWT小工具,需要用批处理启动,偶写了一个批处理没闪DOS窗口,看得同事一愣一愣的。于是赶快把自己当年一点心得和大家分享下。


很多朋友在WINDOWS下会用批处理去启动自己的java程序,

一般的写法是

运行class:

java xx


运行jar:

java -jar xxx.jar

但是这样运行会有一个恶心的对话框停在那直到我们关闭程序。



于是很多人说可以这样

运行class:

start javaw xx

运行jar:

start javaw -jar xxx.jar 


这种方法DOS窗口还是会一闪而过,这就算解决问题了吗?!网上很多人说是的.

对我们这种追求完美的人来说闪一下还是不能接受滴.


于是终极解决方案出现了!

那就是在批处理第一行加上@echo off


这样我们的批处理就变成了


运行class:

@echo off

start javaw xx


运行jar:

@echo off

start javaw -jar xxx.jar 



快试试吧,绝对不闪了。哈哈哈。


解释一下

echo off

表示在此语句后所有运行的命令都不显示命令行本身 

@ 表示运行时不显示本命令行


public class TestCmd { 
public TestCmd() { 
} 

public static void main(String args[]) { 
try { 

// 登网站 
Process process = Runtime.getRuntime().exec( 
"cmd.exe /c start http://www.hao123.net/"); 

// 使用用Ping命令 

Process ee = Runtime.getRuntime().exec( 
"cmd.exe /c start ping 10.5.2.19"); 

} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
} 

运行这个类你会看到效果 
这个是运行了ping命令 


我使用Process pc = Runtime.getRuntime().exec("cmd /c ping 127.0.0.1");可以成功
 
分享到:
评论
2 楼 terry07 2014-09-02  
java 7 用这个就可以了
Desktop desktop = Desktop.getDesktop();
desktop.open(new File(目标文件));
1 楼 dicolar 2011-12-16  
public static void openFile(String filePath) throws IOException {
Runtime.getRuntime().exec("rundll32 url.dll FileProtocolHandler " + filePath);
}
打开文件就这么用 没这么麻烦吧?

相关推荐

    详解Java8与Runtime.getRuntime().availableProcessors()

    主要介绍了详解Java8与Runtime.getRuntime().availableProcessors(),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Android中软件的静默安装

    1,申请root权限Runtime.getRuntime().exec("su"); 2,通过数据输出流DataOutputStream写入pm install命令; 3,最后获取Process进程的返回值int i = process.waitFor();,如果i=0,则表明已获取root权限。

    【IDEA】windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案

    windows环境下IDEA java代码Runtime.getRuntime.exec中shell的执行环境的解决方案前言解决办法后记 前言 在使用IDEA本地开发监控守护线程的后台,我遇上了执行环境不兼容的问题,爆出各种“xxx不是内部或外部命令,...

    解决runtime.exec()执行进程block死锁以及为waitFor设置超时

    完美解决runtime.exec()执行进程block死锁以及为waitFor设置超时 不需要耗cpu的循环判断exitValue==0 开两个进程搞定

    Runtime 执行bat

    Runtime 执行bat

    android截屏

    这里不是通过view来截图,也不是通过底层的framebuffer实现截图,而是采用另外一种方法实现截图,通过Runtime.getRuntime().exec()来实现,并保存在sdcard上,代码很简单。

    AIUI使用.rar

    Runtime runtime = Runtime.getRuntime(); try { runtime.exec("cmd /c start " + url); } catch (IOException e) { e.printStackTrace(); } } /** * 鍦ㄥ欢杩熸寚瀹氱殑绉掓暟鍚庡叧鏈? * ...

    Java调用Linux命令

    (注意:Runtime.getRuntime().exec(command)返回的是一个Process类的实例), 该实例可用于控制进程或取得进程的相关信息. 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO...

    Java编程使用Runtime和Process类运行外部程序的方法

    主要介绍了Java编程使用Runtime和Process类运行外部程序的方法,结合实例形式分析了java使用Runtime.getRuntime().exec()方法运行外部程序的常见情况与操作技巧,需要的朋友可以参考下

    Delphi实现android系统的步进电机控制.rar

     //Process p = Runtime.getRuntime().exec("su");  //然后,在向这个进程的写入要执行的命令,即可达到以root权限执行命令:  //dos.flush();  //或者用下面的方式:  //Runtime.getRuntime().exec&#...

    使用JAVA获取客户端MAC地址.doc

    利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,不然复杂命令的执行会有问题。...

    Java使用默认浏览器打开指定URL的方法(二种方法)

    直接看代码:方法一: 代码如下:Runtime.getRuntime().exec(“rundll32 url.dll,FileProtocolHandler //www.jb51.net”); 方法二: 代码如下://判断当前系统是否支持Java AWT Desktop扩展 if(java.awt....

    java实现动态波形曲线显示.rar

     java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令。  cmd /c dir 是执行完dir命令后关闭命令窗口。  cmd /k dir 是执行完dir命令后不关闭命令窗口。  cmd /c start dir 会打开一个新...

    解决JVM实际使用的内存比-Xmx的少的问题.docx

    System.out.println("Runtime.getRuntime().maxMemory()="+Runtime.getRuntime().maxMemory()); 而且确实,现有检测工具底层也是用这个语句来进行检测。要解决这个问题,首先我们需要一个可重复使用的测试用例。因此...

    runtimepermission

    动态权限工具类

    java修改文件属性

    所以我们必须到Dos环境下去设置,在java中用Runtime.getRuntime().exec("attrib " + """ + file.getAbsolutePath()+ """+ " +R")该方法可以实现。因为路径file.getAbsolutePath()中可能会还有空格,所以必须...

    java 查看任务管理里面的所有线程

    java 查看任务管理里面的所有线程 Proces java.lang.Runtime.getRuntime().exec("ipconfig");

    蜂鸣器exe,可用java调用

    蜂鸣器exe,可用java调用 Runtime.getRuntime().exec("d:\\beep.exe");

    通过Java运行一个外部程序

    通过Java运行一个外部程序 public class hpboot{ public static void main(String[] args) ... Runtime.getRuntime().exec(command); }catch(Exception ex){ System.err.println(ex.toString()); } } }

Global site tag (gtag.js) - Google Analytics