1

我一直在尝试通过彻底搜索来解决我遇到的这个问题,以便找出该怎么做。但是,我发现(至少到目前为止)没有一个结果符合我的要求。

事实是,我已经完成了一个可执行的 JAR。这个 jar 启动一个 .EXE。现在,问题是,EXE 将一直运行,我想获取控制台中写入的任何内容,以便在读取时将其写入 JTextBox。

你介意给我一个例子吗?我想自己做,但我的脑袋似乎不知道怎么做。

非常感谢。

编辑:我想要做的是游戏服务器的 GUI

编辑2:对于那些说它重复的人......希望它是......尝试了其他人解释的但没有奏效,所以这就是我在这里问的原因......

编辑3:因为我一直期待找到问题所在,我会告诉你我所做的没有任何错误。但是,我想这可能是由于服务器(用 C++/C 编写)可能无法以“正常”方式输出。可能是这个原因吗?但愿如此。否则,我可能做错了什么。

请注意,我使用InputStream它是为了能够阅读......但是很好。

4

1 回答 1

0

基本上,您需要首先在某种后台线程中运行进程,这样就不会有阻塞事件调度线程的风险。

然后你需要阅读流程InputStream。在读取输入时,您需要将这些更新推送到 UI 中,以免违反 Swing 的单线程规则。也就是说,您应该确保所有更新都在 Event Dispatching Thread 的上下文中进行。

查看Swing 中的并发以获取更多详细信息。

在这方面,我建议使用类似SwingWorker. 它允许您从后台线程监视进程,但具有将更新同步回 EDT 的易于使用的功能。

从进程打印 Java InputStream为例

于 2013-11-11T22:15:47.503 回答