ここに私の問題があります。いくつかのコマンドを含む .bat ファイルがあります。processbuilder を使用して Java プログラムからこのバッチ ファイルを呼び出すと、.bat ファイル内のコマンドが 1 行ずつ実行されます。しかし、perl プログラムを実行する最後の行に到達するとハングし、プログラムは決して終了しません。それは永遠にそこにぶら下がっています。なぜこれが起こっているのか考えてみてください。参考までに、perl コードに問題はなく、実行できます。
2 に答える
2
あなたのperlプログラムは標準出力に書き込みますか?問題は、Javaプロセスが子プロセスの標準出力と標準エラー出力をパイプにリダイレクトすることだと思います。そのパイプの受信側はJavaプログラムに接続されているため、Javaから呼び出され、標準の出力/エラーに書き込む子プロセスは、その出力の読み取りに失敗するとブロックされます。perlプログラムの出力を削除するか、Javaプログラム内から子プロセスの出力(Process.getInputStream()
および/または)を読み取る必要があります。Process.getErrorStream()
于 2011-03-05T19:53:39.467 に答える