我需要从java进程调用外部进程/scripts/cli命令。
由于这些调用将非常多,有些调用将返回运行的进程/脚本的结果,而其他调用将只运行它,我想知道:
有一个围绕javaProcessBuilder构建的标准设计
这样我就不会把代码调用分散到ProcessBuilder
不断地
我能做什么优化?例如,阅读
从文件中保存所有的cli命令,而不是将它们保存为
密码里有?

最佳答案

你的问题有点含糊,写不出确切的答案,但我有一些建议:
shell设计用于链接命令(管道、等待等)和编写一点逻辑代码。shell是解释的,很容易更新,但必须保持简单。它们可能是你系统的一个基本部分。
编写自己的launch方法来启动进程并捕获stdout和stderr(在两个线程中),以编写驱动程序的日志。
设计XML文件以声明方式指定:
进程路径,它们的参数(静态的)
作业间的并行与同步
用java编写一个模型来反映xml流程模型(jaxb可能是一个解决方案)
将等待一组作业的能力添加到模型中
向模型添加修饰符以动态更改参数的值
如果我试着把你的问题分类,我认为主要是在控制流。
要解决一个大问题,可以使用并行性:同时启动多个进程并等待所有进程的终止:这是rendez vous或join阶段。也许,您可以向另一台联网的计算机启动远程命令。
如何将并行性指定为XML文件的一个很好的例子是:

<parallel>
  <wlrun ... >
  <sequential>
    <sleep seconds="30"/>
    <junit fork="true" forkmode="once" ... >
    <wlstop/>
  </sequential>
</parallel>

我能建议你不用编程就用蚂蚁来解决问题吗?
用纸和笔画一幅愿望的行刑图可能会有帮助…;-)
几个图形应用程序可能有助于绘制控制流的逻辑图。一旦完成,在这里发表,你会得到更准确的答案,我希望…

10-07 19:33
查看更多