Как получить консольный ввод и вывод из jtextArea или JEditorPane - PullRequest
1 голос
/ 25 сентября 2011

Я пытаюсь создать небольшую IDE, которая вызывает компилятор Си.Когда компилятор C компилируется, я хочу перенаправить вывод в JTextArea или JEditorPane в IDE, чтобы пользователь мог просмотреть вывод.

Кроме того, после выполнения объектного файла из скомпилированного кода, как мне создатьконсоль, которую пользователь может использовать для взаимодействия с программой c?

например, если код C требует, чтобы пользователь ввел ввод, пользователь может сделать это с консоли.

В основном, что я хочу, это как перенаправить консольный ввод и вывод операций в jtextarea или jeditorpane.Я строю IDE с Java.

1 Ответ

0 голосов
/ 25 сентября 2011

Этот вопрос является широким (не кратким), но несколько советов:

Вы можете выполнить внешний процесс, используя

Process p = Runtime.getRuntime().exec("...").

Полученный вами процесс представляет собой запущенный внешний процессможно получить его ввод и вывод с помощью:

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
PrintWriter pw = new PrintWriter(p.getOutputStream());

С помощью br вы можете читать вывод процесса построчно и добавлять его к JTextArea.С помощью pw вы можете печатать на вход процесса, чтобы передать некоторые данные.

Вы должны использовать поток для непрерывного чтения из процесса и добавления данных в текстовую область.Данные должны интерпретироваться пользователем, и когда он / она считает, что процесс требует некоторого ввода, следует записать его в текстовую область и нажать кнопку (например), а затем вы прочитаете текстовую область и запишите данные в pw.

...