使用Apache Commons Exec为新进程生成单独的窗口?

时间:2018-04-20 19:04:58

标签: java batch-file apache-commons-exec

我正在尝试使用Apache Commons Exec库在自己的窗口中启动多个批处理文件,虽然我能够正确启动它们,但我遇到了一个小问题,即JVM产生的输出正在窗口中显示原始进程。我需要它们全部显示在他们自己的单独窗口中,但尽管使用了我认为正确的参数,所有输出转储到原始控制台。

以下是我如何产生这些过程。

CommandLine cmd = new CommandLine("cmd");

cmd.addArgument("start");
cmd.addArgument("/MIN");
cmd.addArgument("/I");

cmd.addArgument("cmd.exe");
cmd.addArgument("/C");

cmd.addArgument(script);
cmd.addArgument(groupName);

Executor executor = new DefaultExecutor();
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();

try {
    PumpStreamHandler psh = new PumpStreamHandler(new ExecOutputStream(LOG, Level.DEBUG), new ExecOutputStream(LOG, Level.ERROR));

    executor.setWatchdog(watchdog);
    executor.setExitValue(0);
    executor.setStreamHandler(psh);
    executor.execute(cmd, resultHandler);

    resultHandler.waitFor(5_000);
} catch(IOException io) {
    // handle IOException...
} catch(InterruptedException ie) {
    // handle InterruptedException...
}

我是否缺少启动命令的参数,导致这些参数在自己的控制台窗口中生成?或者是否需要调用执行程序类的其他方法?

0 个答案:

没有答案