У нас есть Perl-программа для проверки XML, которая вызывается из Java-программы. Он не умеет писать со стандартной ошибкой и зависает в месте печати.
Perl пишет в STDERR, а Java-программа читает STDERR с помощью функции getErrorStream (). Но программа Perl зависает, чтобы написать в STDERR. Я подозреваю, что функция Java полностью блокирует поток STDERR, и Perl ожидает освобождения этого потока.
Есть ли в Perl способ преодолеть эту блокировку и принудительно записать в стандартную ошибку? Поскольку Java выполняет только чтение, API не должен блокировать поток STDERR согласно документу Java.
Фрагмент кода Perl:
sub print_error
{
print STDERR shift;
}
Фрагмент кода Java:
while ( getErrorStream() != null )
{
SOP errorMessage;
}
Заранее признателен за помощь.
Спасибо,
Мэтью Лию