易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中使用Runtime和Process类运行外部程序

使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。
  1. exec(String command)
  2. exec(String command, String envp[], File dir)
  3. exec(String cmd, String envp[])
  4. exec(String cmdarray[])
  5. exec(String cmdarray[], String envp[])
  6. exec(String cmdarray[], String envp[], File dir)
一般的应用程序可以直接使用第一版本,当有环境变量传递的时候使用后面的版本。其中2和6版本可以传递一个目录,标识当前目录,因为有些程序是使用相对目录的,所以就要使用这个版本。
cmd.exe /c start <FileName>
使用DOS命令(比如dir)时也要使用到调用。如果想与调用的程序进行交互,那么就要使用该方法的返回对象Process了,通过Process的getInputStream(),getOutputStream()和getErrorStream()方法可以得到输入输出流,然后通过InputStream可以得到程序对控制台的输出信息,通过OutputStream可以给程序输入指令,这样就达到了程序的交换功能。
用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:
1  
2  Process process = Runtime.getRuntime().exec(".\\p.exe");
3  process.waitfor();
4  
在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的等待子进程完成再往下执行。
但在windows平台上,如果处理不当,有时并不能得到预期的结果。下面是笔者在实际编程中总结的几种需要注意的情况:
  1、执行DOS的内部命令
  如果要执行一条DOS内部命令,有两种方法。一种方法是把命令解释器包含在exec()的参数中。例如,执行dir命令,在NT上,可写成exec("cmd.exe   /c dir"),在windows95/98下,可写成“command.exe /c dir”,其中参数“/c”表示命令执行后关闭DOS立即关闭窗口。另一种方法是,把内部命令放在一个批命令my_dir.bat文件中,在Java程序中写成exec("my_dir.bat


相关文档:

一道简单的java题,确费了我挺长时间的。

今日在网上偶然碰到一个初学者的java题目,就尝试的做了一下,但没想到一做就是接近一个钟头啊,看来java学习的路上还是路漫漫兮修远啊。
 题目如下:
编写一个Java Application 程序,接受用户输入的一个浮点数,将其的整数部分和小数部分分别输出。
如:输入56.6 ,则有
      整数部分:56
       ......

JAVA如何执行DOS命令

http://techpool.javaeye.com/blog/486326
2009-10-12
JAVA如何执行DOS命令
JAVA如何执行DOS命令
      下面是一种比较典型的程序模式:
  
      ...
  Process process = Runtime.getRuntime().exec(".\\p.exe");
  process.waitfor( );
  ... ......

Java技术未来十年发展

                                 
  美国旧金山时间2005年6月28日上午,在由全球10000多名开发人员出席的“2005 Java One开发者大会&r ......

java中的final关键字所起的作用

final的作用随着所修饰的类型而不同
       1、final修饰类中的属性或者变量
              无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。
    &n ......

Java 类的热替换 —— 概念、设计与实现

http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/index.html
Java 类的热替换 —— 概念、设计与实现
构建基于 Java 的在线升级系统
 
 
级别: 中级
孙 鸣
,
邓 辉
,
2010 年 1 月 14 日

于许多关键性业务或者庞大的 Java
系统来说,如果必须暂停系统服务才能进行系统 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号