2011-09-25 144 views
1

我想构建一个调用C编译器的小IDE。 当C编译器编译时,我想将输出重定向到IDE中的JTextArea或JEditorPane,以便用户可以查看输出。如何从jtextArea或JEditorPane获取控制台输入和输出

此外,从编译代码执行目标文件后,如何创建用户可以用来与c程序进行交互的控制台?

例如,如果C代码要求用户键入输入,则用户可以从控制台执行该操作。

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

回答

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并将数据写入pw