从java初始化批处理脚本后退出

时间:2011-05-12 06:13:12

标签: java process batch-file runtime

我想使用java代码初始化一个批处理脚本。一旦初始化,我需要退出java程序并希望批处理脚本继续执行。我怎样才能做到这一点。我使用Runtime和Process来做到这一点。但它正在等待批处理脚本完成后再继续下一步。这是我试过的示例程序。

        try {
            Runtime r = Runtime.getRuntime();
            System.out.println("Executing process");
            Process p = r.exec("c:\\anoop\\ping.bat");
            System.out.println("Executed process"); 
            p.waitFor();
            System.out.println("Exiting with out :: ");
        } catch (Exception e) {// Catch exception if any
            System.err.println("Error: " + e.getMessage());
            e.printStackTrace();
        }

如果我使用p.exitValue(),则会给出错误java.lang.IllegalThreadStateException:进程尚未退出。简而言之,我只想初始化一个批处理脚本,然后退出java程序。

谢谢,Anoop

1 个答案:

答案 0 :(得分:0)

要获取流程的退出值,请使用:

int res = p.waitFor();
System.out.println("Exiting with out :: " + res);

如果您希望流程继续,请不要等待(不要致电wait()

如果进程需要输入或产生一些输出,则必须处理(最好是在不同的线程上),因为所有I / O都被重定向。