Я создаю процесс командной строки в своем приложении Delphi, который может взаимодействовать с JDB для компиляции, запуска и отладки приложения Java. Cmd ввод/вывод/ошибки обрабатываются путем конвейерной обработки из cmd в/из моего пользовательского интерфейса приложения Delphi.Консоль Java Ввод/вывод/Перенаправление ошибок в другое приложение (Delphi)
Я хочу, чтобы выход программы java при использовании 'System.out'/'System.err' был направлен на компонент моего приложения Delphi, и я хочу, чтобы вход из моего приложения delphi отправлялся в 'System. в 'позволяя мне сформировать консоль в моем интерфейсе Delphi, подобном консоли в Eclipse IDE.
Несколько мыслей о подходах;
- Неизвестная флаг (я не нашел) в компилятор Java позволяет мне перенаправить
- Использование «System.setOut»/«System.setErr»/«» System.setIn вместе с основным методом в классе, который выполняет эту инициализацию, прежде чем указывать на обычный основной метод для запуска кода пользователя.
NB - Я попытался найти исходный код Eclipse, чтобы узнать, как они это сделали, но поскольку он написан на Java, я подозреваю, что они не столкнутся с проблемами на разных языках, с которыми я столкнулся.
Возможный дубликат [Получение вывода из приложения оболочки/dos в приложение Delphi] (http://stackoverflow.com/questions/9119999/getting-output-from-a-shell-dos-app-into-a -delphi-app) –
Я уже достиг того, о чем говорит ваш предложенный вопрос (конвейерная обработка), это касается того, куда идет Java System.in/out/err и как перенаправить его в приложение Delphi. Конвейерная обработка требует, чтобы процесс работы работал, насколько я знаю, и пока я делаю Java-приложение, я не могу контролировать конструкцию Java-консоли. Кроме того, конвейерная обработка использует указатели, которые, как я полагаю, не существуют в какой-либо форме на Java. –
ОС уже предоставляет все необходимое. Когда процесс запускается, вы поставляете три стандартных ручки. –