易截截图软件、单文件、免安装、纯绿色、仅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 robot test

由于很想回忆以前干了些什么,总是会在某个时间把屏幕截一下,方便以后回忆。于是就写了个自动保存屏幕的小程序。
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException; ......

java中的Synth外观

 java中的Synth外观 
   Synth,它是一个完整的外观,而不是一个主题,它针对的并不是程序员,而是界面设计人员,让他们不必掌握Java 知识便能够进行相应界面的选择定制。采用了Synth 后,我们不能从现有外观或主题派生子类、修改字体或颜色,而是通过转载不同的XML 文件以达到对 ......

带有事务的java访问数据库

关键语句:
    conn.setAutoCommit(false);
    if(!ok) conn.rollBack();
    // after all done
    conn.commit();
    conn.setAutoCommit(true);
   
千万别忘记要加conn.commit()否则不会执行事务的。
另外,M ......

Java面试题整理

              
一、
Java
基础

01
题:
作用域
public,private,protected,
以及不写时的区别
 

02
题:
Anonymous Inner Class (
匿名内部类
)
是否可以
extends(
继承
)
其它类,是否可以
implements(
实现
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号