在Java App中启动进程




Java 1.5增加了非常实用的Process和ProcessBuilder类,能让我们非常方便地在Java应用程序中启动其他任何可执行文件和脚本。以下代码将运行一个记事本:


 

如果传入参数,则参数将作为完整的命令传入新创建的Process(第一个参数为Process的文件路径)。Process类的start()方法将启动新的进程。

此外,waitFor()方法能让当前线程等待直至Process结束,并返回结束代码。测试可以发现,正常结束的Process返回0,如果使用任务管理器强制结束Notepad进程,将返回1。


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);     } }