首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进行外部进程调用时的设计优化

进行外部进程调用时的设计优化
EN

Stack Overflow用户
提问于 2013-03-06 21:00:39
回答 1查看 73关注 0票数 1

我需要从java进程调用外部进程/脚本/cli命令。

由于这些调用将非常多,有些将返回运行的进程/脚本的结果,而另一些则只运行它,所以我想知道:

  1. 有一个标准的设计可以围绕着ProcessBuilder构建,这样我就不会经常在代码调用中分散对ProcessBuilder的调用
  2. 我能做什么优化呢?例如,从文件中读取所有cli命令,而不是将它们作为final String保存在代码中,这样做是否有意义?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-06 21:24:48

你的问题有点含糊不清,无法写出准确的答案,但我有一些建议:

  • Shell旨在连接命令(管道、等待等),并编写一些逻辑代码。Shell是解释的,很容易更新,但必须保持简单。它们可能是你系统的一个基本部分。
  • 编写自己的launch方法来启动进程,捕获stdout和stderr (在两个线程中),编写驱动程序的日志。
  • 设计一个XML文件以声明方式指定:
    • 进程路径,它们的参数(静态的)
    • 并行性与作业间的同步

  • 用Java编写模型以反映XML过程模型(JAXB可能是一种解决方案)
  • 将等待一组作业的能力添加到模型中
  • 向模型添加修饰符以动态更改参数的值

如果我试图分类你的问题,我认为主要是控制流。

要解决一个大问题,您可以使用并行性:同时启动多个进程并等待所有进程的终止:这是一个交会或连接阶段。您可能会对另一台联网的计算机启动远程命令。

如何将并行性指定为XML文件的一个很好的示例是ANT构建文件

代码语言:javascript
复制
<parallel>
  <wlrun ... >
  <sequential>
    <sleep seconds="30"/>
    <junit fork="true" forkmode="once" ... >
    <wlstop/>
  </sequential>
</parallel>

我可以建议你不用编程就用ANT来解决问题吗?

用一张纸和一支笔画一幅愿望的执行可能会有帮助.;-)

几个图形应用程序可能有助于绘制控制流的逻辑图。一旦完成,在这里发表,你就会得到更精确的答案,我希望.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15257937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档