Дакве и Витаут правы.
Я просто хотел добавить одну рекомендацию. Вы должны использовать шаблон MVC (модель-представление-контроллер) при разработке приложения. Таким образом, если он работает в режиме пользовательского интерфейса, он использует UIView, в противном случае ConsoleView.
Dacwe порекомендовал вам, как автоматически решить, какой режим использовать. Из-за того, что Java является кроссплатформенным языком, я думаю, что название операционной системы не имеет значения для вас. Тот факт, что система имеет графическое окружение, более актуален, поэтому используйте GraphicsEnvironment.isHeadless()
.
System.console()
поможет вам создать контролируемое оболочкой приложение.