Java 1.5增加了非常实用的Process和ProcessBuilder类,能让我们非常方便地在Java应用程序中启动其他任何可执行文件和脚本。以下代码将运行一个记事本:
public class Main {
private static final String COMMAND = "C://WINDOWS//NOTEPAD.EXE";
public static void main(String[] args) throws IOException, InterruptedException {
Process process = null;
if(args.length==0) {
process = new ProcessBuilder(COMMAND).start();
}
else {
process = new ProcessBuilder(args).start();
}
int exitCode = process.waitFor();
System.out.println("Process exit: " + exitCode);
}
}
如果传入参数,则参数将作为完整的命令传入新创建的Process(第一个参数为Process的文件路径)。Process类的start()方法将启动新的进程。
此外,waitFor()方法能让当前线程等待直至Process结束,并返回结束代码。测试可以发现,正常结束的Process返回0,如果使用任务管理器强制结束Notepad进程,将返回1。