我正在尝试构建一个调用C编译器的小IDE。 当C编译器编译时,我想将输出重定向到IDE中的JTextArea或JEditorPane,以便用户可以查看输出。
此外,在从编译代码执行目标文件后,如何创建用户可以用来与c程序交互的控制台?
例如,如果C代码要求用户键入输入,则用户可以从控制台执行此操作。
基本上,我想要的是如何将控制台输入和输出操作重定向到jtextarea或jeditorpane。 我正在使用java构建IDE。
答案 0 :(得分:0)
这个问题很广泛(不简洁),但有些提示:
您可以使用
执行外部流程Process p = Runtime.getRuntime().exec("...").
您获得的流程表示正在运行的外部流程,您可以使用以下命令获取其输入和输出:
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
PrintWriter pw = new PrintWriter(p.getOutputStream());
使用br
,您可以逐行读取流程的输出,并将其添加到JTextArea
。使用pw
,您可以打印到流程的输入,以传递一些数据。
您应该使用线程连续读取进程并将数据添加到textarea。用户应该解释数据,当他/她认为进程需要输入时,应该将其写入textarea并单击按钮(例如),然后读取textarea并将数据写入{{1 }}