Java 如何从jtextArea或JEditorPane获取控制台输入和输出

Java 如何从jtextArea或JEditorPane获取控制台输入和输出,java,console,jtextfield,jeditorpane,Java,Console,Jtextfield,Jeditorpane,我正在尝试构建一个调用C编译器的小IDE。 当C编译器编译时,我希望将输出重定向到IDE中的JTextArea或JEditorPane,以便用户可以查看输出 另外,在从编译代码执行对象文件之后,如何创建一个用户可以用来与c程序交互的控制台 例如,如果C代码要求用户键入输入,则用户可以从控制台键入 基本上,我想要的是如何将控制台输入和输出操作重定向到jtextarea或jeditorpane。 我正在用java构建IDE。这个问题很宽泛(不简洁),但有一些提示: 您可以使用 Process p =

我正在尝试构建一个调用C编译器的小IDE。 当C编译器编译时,我希望将输出重定向到IDE中的JTextArea或JEditorPane,以便用户可以查看输出

另外,在从编译代码执行对象文件之后,如何创建一个用户可以用来与c程序交互的控制台

例如,如果C代码要求用户键入输入,则用户可以从控制台键入

基本上,我想要的是如何将控制台输入和输出操作重定向到jtextarea或jeditorpane。 我正在用java构建IDE。

这个问题很宽泛(不简洁),但有一些提示:

您可以使用

Process p = Runtime.getRuntime().exec("...").
您获取的流程表示正在运行的外部流程,您可以通过以下方式获取其输入和输出:

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
PrintWriter pw = new PrintWriter(p.getOutputStream());
使用
br
可以逐行读取流程的输出,并将其添加到
JTextArea
。使用
pw
可以打印到流程的输入,以便传递一些数据

您应该使用线程连续读取进程并将数据添加到textarea。数据应由用户解释,当他/她认为流程需要一些输入时,应将其写入文本区域并单击按钮(例如),然后读取文本区域并将数据写入
pw