让我们说,
我有一个Java类JavaClass1.java。我正在从这个Java类执行2个批处理文件。 每个.bat文件启动另一个Java应用程序。 让我们说这两个应用程序每个需要15个小时来完成,而且它们也不相互依赖。
我该如何解决这个问题。我不必等待一个完成所以我必须这样做 从另一个开始,我也可以同时做到。
我找到了人们谈论handelling输出流,输入流和错误流,如果我 等待错误处理,然后我必须等待15个小时。我不想这样做。
有什么办法吗?请建议。感谢
答案 0 :(得分:2)
将每个.bat启动机制放在自己的线程中,然后启动每个线程。
new Thread(new Runnable() {
@Override
public void run() {
//Launch first bat.
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
//Launch second bat.
}
}).start();
答案 1 :(得分:1)
Runtime.getRuntime().exec(new String[]{"cmd","/c","java -jar app1.jar"});
Runtime.getRuntime().exec(new String[]{"cmd","/c","java -jar app2.jar"});
只需使用运行时执行服务,如果不调用process.waitFor()来获取进程的返回代码,它将不会阻塞,因此您可以立即调用下一个应用程序。如果您想从应用程序返回代码,请在每个Thread上运行app作为Mike。