JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • ProcessBuilder — запуск внешних процессов

    JAVA 25 SELF
    61 уровень,0 лекция
    Разбираем, как из Java запускать внешние команды и утилиты с помощью класса ProcessBuilder: чем он лучше Runtime. getRuntime(). exec(), как настраивать рабочую директорию через directory(), переменные окружения через environment(), и управлять процессом через start(), waitFor(), потоки getInputStream()/ getErrorStream()/ getOutputStream(). Обсудим кроссплатформенность ( cmd.exe/ ls), работу со stdout/ stderr и типичные ошибки.
    Открыта
  • Чтение вывода процесса, работа со stdin/stdout

    JAVA 25 SELF
    61 уровень,1 лекция
    Практика работы с внешними процессами в Java: как читать stdout через Process.getInputStream(), ловить ошибки из stderr через Process.getErrorStream(), писать во stdin с помощью Process.getOutputStream(), а также использовать удобные методы inputReader()/ errorReader()/ outputWriter(). Разберём особенности команд вроде java -version, параллельное чтение потоков для избежания deadlock, работу с кодировками ( "UTF-8") и небольшой бридж с Python-скриптами.
    Открыта
  • Управление жизненным циклом процесса

    JAVA 25 SELF
    61 уровень,2 лекция
    Практика управления внешними процессами из Java: ожидаем завершение через waitFor() (включая таймауты), читаем код возврата, корректно останавливаем через destroy()/ destroyForcibly(), предотвращаем зависания и «зомби»-процессы, не забывая о потоках вывода и исключениях. Разбираем кроссплатформенные нюансы и типичные ошибки.
    Открыта
  • Интерактивное взаимодействие с процессами

    JAVA 25 SELF
    61 уровень,3 лекция
    В этой лекции разберём, как из Java организовать «живой» диалог с внешними программами: писать в stdin, читать из stdout и stderr, избегать взаимных блокировок ( deadlock), параллельно обрабатывать вывод с помощью ExecutorService, корректно закрывать потоки и управлять жизненным циклом Process через ProcessBuilder. Посмотрим примеры с интерактивным скриптом на Python и утилитой bc, а также разберём подводные камни буферизации и необходимости flush().
    Открыта
  • Разбор типичных ошибок при работе с процессами

    JAVA 25 SELF
    61 уровень,4 лекция
    Практический гид по устойчивой работе с внешними процессами в Java: как избежать зависаний из‑за нечитанных потоков stdout/ stderr, правильно настраивать кодировки вывода (например, UTF-8, CP866), учитывать кросс‑платформенные различия команд ( ls vs dir), обрабатывать права доступа и выходные коды через process.exitValue(), закрывать ресурсы без утечек и избегать интерактивных взаимных блокировок. Рассматриваем грамотное использование ProcessBuilder, параллельное чтение потоков (потоки/ ExecutorService), корректное завершение через process.destroy(), а также универсальные пути с File.separator.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush