我想使用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
答案 0 :(得分:0)
要获取流程的退出值,请使用:
int res = p.waitFor();
System.out.println("Exiting with out :: " + res);
如果您希望流程继续,请不要等待(不要致电wait()
)
如果进程需要输入或产生一些输出,则必须处理(最好是在不同的线程上),因为所有I / O都被重定向。