我已经构建了一个由几个模块组成的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文件或其他什么,我只是配置一个流程链,我可以选择应该用一个命令运行的模块及其参数。
答案 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
}
}