Java プログラムから呼び出される XML を検証する Perl プログラムがあります。標準エラーに書き込めず、印刷場所にぶら下がっています。
Perl は STDERR に書き込み、Java プログラムは getErrorStream() 関数を使用して STDERR を読み取ります。しかし、Perl プログラムは STDERR に書き込むためにハングしています。Java 関数が STDERR ストリームを完全にブロックしており、Perl がこのストリームが解放されるのを待っていると思われます。
Perl でこの閉塞を克服し、強制的に標準エラーに書き込む方法はありますか? Java は読み取りのみを行っているため、API は Java doc に従って STDERR ストリームをロックするべきではありません。
Perl コード スニペットは次のとおりです。
sub print_error
{
print STDERR shift;
}
Java コード スニペットは次のとおりです。
while ( getErrorStream() != null )
{
SOP errorMessage;
}
事前に助けに感謝します。
ありがとう、マシュー・リジュ