使用Java与控制台(linux中的终端)窗口交互

时间:2013-03-06 09:48:12

标签: java

我正在开发用于java编程的GUI。

我希望在我的GUI中实现一个控制台(类似于终端),用于编译和执行创建的程序。 (比如eclipse中的控制台窗口)。我经历了几个教程(包括 stackoverflow )。

我有一些解决方案可以将 System.out System.err 重定向到 TextArea 。好的。我很满意。

但是当我运行java程序时,通过使用这些东西,我无法为正在执行的程序提供输入。

例如,根据我目前的状态,我可以看到::

TextArea 中输入一个数字:但无法输入该程序。

要完成控制台的功能,我也可以给执行中的程序输入.. !!但我不知道该怎么做.. !!我遇到了大麻烦。

2 个答案:

答案 0 :(得分:1)

假设您正在使用Process。要获得流程,请使用ProcessBuilder启动您的程序。流程可以访问流程的输入/输出流。然后,您可以以任何您需要的方式使用这些流。如果您希望您的进程与系统输入/输出进行交互,则需要将它们复制到相应的系统流中或从相应的系统流中复制它们。

请参阅此问题/答案以获取示例:

以及后续行动:

另外,请参阅Java 7中添加的新ProcessBuilder.inheritIO()方法。

答案 1 :(得分:0)

这可能会对你有所帮助 http://www.dreamincode.net/forums/topic/273874-redirect-systemin-to-jtextarea/

这家伙已将stdin指向jtextarea ..