[用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序

Java调用批处理:
import java.io.*;
public class Test{
public static void main(String[] args){
try {
//执行批处理文件
Process process = Runtime.getRuntime().exec("文件路径");
//取得命令结果的输出流
InputStream fis = process.getInputStream();
//用一个读输出流类去读
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = null;
//逐行读取输出到控制台
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java打开DOS窗口:
public class Test{
public static void main(String[] args){
try {
Process process = Runtime.getRuntime().exec("cmd start ");
}catch(Exception e){
e.printStackTrace();
}
}

另附start参数说明:

[用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序

START   ["title"]   [/Dpath]   [/I]   [/MIN]   [/MAX]   [/SEPARATE   |   /SHARED]

[/LOW   |   /NORMAL   |   /HIGH   |   /REALTIME   |   /ABOVENORMAL   |   /BELOWNORMAL]

[/WAIT]   [/B]   [command/program]

[parameters]

"title"           在窗口标题栏中显示的标题。

path                 起始目录

B                       在不创建新窗口的情况下开始应用程序。   除非

启动   ^C   处理,否则该应用程序会忽略   ^C   处理;

^Break   是唯一可以中断该应用程序的方式

I                       新环境是传递给   cmd.exe   的原始环境,

而不是当前环境

MIN                   开始时窗口最小化

MAX                   开始时窗口最大化

SEPARATE         在分开的空间内开始   16   位   Windows   程序

SHARED             在分共享的空间内开始   16   位   Windows   程序

LOW                   在   IDLE   优先级类别开始应用程序

NORMAL             在   NORMAL   优先级类别开始应用程序

HIGH                 在   HIGH   优先级类别开始应用程序

REALTIME         在   REALTIME   优先级类别开始应用程序

ABOVENORMAL   在   ABOVENORMAL   优先级类别开始应用程序

BELOWNORMAL   在   BELOWNORMAL   优先级类别开始应用程序

WAIT                 启动应用程序并等候它结束

command/program

如果是内部   cmd   命令或批文件,那么该命令处理器是

用   /K   命令行开关运行   cmd.exe   的。这表示该窗口在命令运行

后仍然存在。

如果不是内部   cmd   命令或批文件,则是一个程序,并

作为窗口应用程序或控制台应用程序运行。

parameters     这些为传送到命令/程序的参数

如果命令扩展名被启用,通过命令行或   START   命令的外部命令

调用会如下改变:

将文件名作为命令键入,非可执行文件可以通过文件关联调用。(例如,   WORD.DOC   会调用跟   .DOC   文件扩展名关联的应用程序)。关于如何从命令脚本内部创建这些关联,请参阅   ASSOC 和 FTYPE   命令。

执行的应用程序是   32-位   GUI   应用程序时,CMD.EXE   不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。

如果执行的命令行的第一个符号是不带扩展名或路径修饰符的   字符串   "CMD","CMD"   会被COMSPEC   变量的数值所替换。这防止从当前目录抓出   CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE   会使用PATHEXT   环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT   变量的默认值是: COM;.EXE;.BAT;.CMD

请注意,该语法跟   PATH   变量的一样,分号隔开不同的元素。

查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START   会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作   CD   /D