从Java执行批处理

时间:2010-08-13 22:35:03

标签: java batch-file

让我们说,

我有一个Java类JavaClass1.java。我正在从这个Java类执行2个批处理文件。 每个.bat文件启动另一个Java应用程序。 让我们说这两个应用程序每个需要15个小时来完成,而且它们也不相互依赖。

我该如何解决这个问题。我不必等待一个完成所以我必须这样做 从另一个开始,我也可以同时做到。

我找到了人们谈论handelling输出流,输入流和错误流,如果我 等待错误处理,然后我必须等待15个小时。我不想这样做。

有什么办法吗?请建议。感谢

2 个答案:

答案 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。