【发布时间】:2011-08-01 06:20:04
【问题描述】:
我希望能够与我的 Java 代码同时运行一个外部程序,即我想启动该程序,然后将控制权返回给调用方法,同时保持外部程序运行。然后,Java 代码将继续生成输入并将其发送到外部程序并接收回输出。
我不想继续加载外部程序,因为它的开销非常大。实现这一目标的最佳方法是什么?谢谢!
【问题讨论】:
-
你描述的是
Runtime.exec()(和`ProcessBuilder)的默认行为。阅读this great article on common stumbling blocks (and their solutions) -
larson:我真的,真的,建议不要在流媒体上制作任何东西:stackoverflow.com/questions/4674179 否则你将进入一个充满伤害和痛苦的世界。我在这里创建的外部进程可能比 anyone 更多(即:在 lot 用户系统上发布的应用程序上并不断创建外部进程)所以我知道一点点我在说什么。我使用临时文件进行进程通信(网络存在问题,例如触发 AV 通知,这可能会让您的用户吓坏,并且试图从 Java 操作标准输入/输出是妄想)。
标签: java