«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как решить проблемы перенаправления вывода с помощью среды выполнения Java?

Как решить проблемы перенаправления вывода с помощью среды выполнения Java?

Опубликовано 7 ноября 2024 г.
Просматривать:133

How to Address Output Redirection Issues Using Java\'s Runtime?

Решение проблемы перенаправления вывода с помощью метода exec() среды выполнения.

В Java использование Runtime.getRuntime().exec() для запуска команды позволяет захватывать данные процесса потоки вывода и ошибок. Однако в тех случаях, когда желательно перенаправление вывода, этот метод сам по себе может оказаться неэффективным.

Проблема: вывод не перенаправляется

При использовании Runtime.getRuntime().exec() с командами, которые функция перенаправления вывода, например > , операция перенаправления может завершиться неудачно. Целевой файл не может быть создан, а выходной поток остается неперенаправленным.

Решение: использование ProcessBuilder

Чтобы успешно перенаправить выходные данные, рассмотрите возможность использования вместо этого ProcessBuilder. Этот класс предлагает более детальный подход к созданию процессов, позволяя указать перенаправление вывода и потока ошибок.

Вот как использовать ProcessBuilder для перенаправления вывода:

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException

Используя ProcessBuilder, вы можете перенаправить потоки стандартного вывода и стандартных ошибок в нужный файл, гарантируя, что вывод команды будет записан.

Заявление о выпуске Эта статья перепечатана по адресу: 1729728181. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3