2012-04-18 5 views
1

Я не был уверен, как это искать. У меня есть приложение для качания. Я хочу разрешить пользователю открывать командную строку и видеть вывод (System.out.println("MY_OUTPUT");), когда они проходят через приложение. Однако в большинстве случаев это не обязательно, поэтому это будет вариант, который они могут включить после запуска приложения. Есть какой-либо способ сделать это? В принципе, я ищу способ открыть командную строку или терминал, связанный с моей программой, в любой момент. Спасибо за помощь.Программно показать командную строку/вывод терминала

Note1: Это не имеет никакого отношения к получению ввода от пользователя, это все о выходе для пользователя.

Примечание2: Я понимаю, что я мог бы (и, возможно, должен) сделать это в отдельном окне свинга с текстовой областью, но все у меня есть, как это будет System.out.println();, и я хочу использовать этот же вид Я думаю, что в будущих проектах я бы очень хотел, чтобы это можно было сделать с помощью командной строки. Кроме того, это мой вопрос в первую очередь. Спасибо: D

+0

Проверьте этот вопрос, сделав очень похожее: http://stackoverflow.com/questions/2460297/run-shell-command-from-java –

+0

Извините, похоже, что это для ввода от пользователя. Меня интересует только выход. См. Примечание по обновлению. – kentcdodds

ответ

1

Чтобы быть честным, мне кажется странным в среде GUI принимать входные данные от пользователя через командную строку вместо некоторого диалога (я имею в виду, что вы показываете графический интерфейс), но вы можете просто использовать Runtime для выполнения командной строки. Смотрите здесь cmd using java

+0

Нет, это не для приема ввода. Это только для просмотра. См. Обновленное примечание. – kentcdodds

+0

Вы также можете отобразить вывод с помощью другой панели. Запустив командную строку? С моей точки зрения даже печать вывода в файл и информирование пользователя через окно сообщения, которое было завершено, кажется более естественным, чем представление командной строки . Если я ошибаюсь, я видел это aproach только в мастерах установки, и это по определенным причинам. – Cratylus

+0

Я могу закончить так. Просто было бы просто показать его в командной строке, потому что это '' System.out.println(); 'все равно, а не перенаправлять все мои сообщения на панель или файл. – kentcdodds

0

Почему бы не просто всплывать текстовое поле/область (или что-то еще в Swing) и написать там сообщения?

+0

Хммм ... Интересная мысль. Я могу сделать это, но я бы предпочел вариант командной строки/терминала. – kentcdodds

1

Я предполагаю, что это требование исходит от вас, используя простую стратегию ведения журнала в вашем приложении, просто используя инструкции System.println(). Вы должны обернуть вызовы метода System.println() в каком-то классе шаблонов регистратора. Вы можете создать интерфейс Logger с помощью метода Log. ConsoleLogger impl просто записывал на консоль и был бы полезен для тестирования/отладки.

Тогда для ваших настоящих пользователей у вас есть пара вариантов. Вы можете использовать FileLogger и заставить их читать файлы журналов, если они хотят видеть вывод вашего приложения. Или вы можете сделать какой-то CustomTextWindowLogger, который входит в какое-то окно графического интерфейса пользователя, или, возможно, еще файл, с которого может отображаться окно GUI.

В любом случае, я никогда не видел приложения перенаправлять System.println() операторов графическому компоненту, потому что он просто отправляет данные в стандартный выходной поток. Вдоль этой линии мышления, я думаю, вы могли бы также попытаться изменить выходной поток System.out на другой поток, который может отображать окно графического интерфейса пользователя. Это было бы легче реализовать быстро, но было бы сложнее сменить линию. С интерфейсом Logger вы можете легко передумать, как выводится результат пользователю.

Смежные вопросы