Java命令进程链生成器

时间:2012-08-21 09:46:31

标签: java frameworks command chain

我已经构建了一个由几个模块组成的Java命令行应用程序。因此,当您通过命令行启动应用程序时,您必须传递一个参数及其选项,例如:

cmd-> java -jar application -startModul1 option1 folderPath 

OR

cmd-> java -jar application -startModul5 500 folderPath 1222 

目前,我必须通过启动应用程序并传递请求的参数+选项来启动每个模块。现在可以看到,但后来,当我说20个模块时,我想生成一个带有几个模块的过程链,一个接一个地开始。

例如,最后我可以通过一个命令从上面的例子中启动两个模块。

cmd-> java -jar application -startAllModules option1 500 folderPath 1222 

是否有框架,我可以用现有的命令行模块生成这样的过程链?这不应该是编程的,因为我想要某种xml文件或其他什么,我只是配置一个流程链,我可以选择应该用一个命令运行的模块及其参数。

2 个答案:

答案 0 :(得分:1)

你有没有想过把你的程序变成翻译?

答案 1 :(得分:1)

我认为解析命令行,了解它必须执行的简单命令(从你想要使用的xml)并启动它们就足够了。

如何启动它们?

Process p = Runtime.exec(String[] cmdarray)

其中cmdarray将包含命令的每个单词:

{"java", "-jar", "application", "-startModul1", "option1", "folderPath"}

p.waitFor();

如果您希望此线程等到已启动的命令结束。

更新:非并发

后者是为了防止并行运行多个独立进程。一个是你需要的命令。

如果你只需要一个接一个地执行 ,那就更简单了。当主要实现它必须执行多个模块时,它会使用适当的参数调用自身。

public static void main(String[] args) throws Exception {
    // parse params
    if (it's a multi module command line) {
       for (each module you have to execute) {
          main(new String[] {"-startModule1", ..., ...}); // call myself with different args
       }
    }
    else {
       // execute what you've been asked for
    }
}