Для каких задач в разработке на Java используется консоль (терминал)?

«Для каких задач в разработке на Java используется консоль (терминал)?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Консоль (терминал, командная строка) — незаменимый инструмент для ряда задач, несмотря на развитие IDE.

Основные сценарии использования:

  1. Сборка и управление зависимостями:

    mvn clean compile
    mvn spring-boot:run
    gradle build
  2. Запуск приложений и управление JVM:

    java -jar myapp.jar --profile=prod
    java -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -jar service.jar
  3. Диагностика и мониторинг JVM (JDK Tools):

    • jps – список Java-процессов.
    • jstack <pid> – дамп потоков (для анализа deadlock).
    • jmap -heap <pid> – информация о heap.
    • jstat -gc <pid> – статистика сборки мусора.
  4. Быстрое прототипирование и изучение API (JShell с Java 9+):

    $ jshell
    jshell> List<String> list = List.of("a", "b", "c");
    jshell> list.stream().map(String::toUpperCase).forEach(System.out::println)
    A
    B
    C
  5. Просмотр и анализ логов:

    tail -f application.log
    grep "ERROR" application.log | head -20
  6. Работа с системами контроля версий:

    git log --oneline -10
    git bisect start
  7. Создание и запуск тестов в CI/CD-скриптах.

Для продакшн-логирования всегда используются специализированные библиотеки (SLF4J/Logback), но консоль остаётся основным интерфейсом для оперативного управления и диагностики.