2011-09-25 123 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