0

現在、Perl からいくつかのデータを読み取っています。すべてのステップで Perl からメッセージを取得したいと考えています。このコードを使ってみましたが、

 Process process = Runtime.getRuntime().exec(new String[] {"perl","C:\\Perl\\bin\\try.pl", "uname=test"});
 BufferedReader reader =new BufferedReader(new InputStreamReader(process.getInputStream()));
 String s = reader.readLine();
  System.out.println("perl said [ " + s + " ]");

私のperlスクリプトは次のとおりです。

$path_to_file = $ARGV[0] or die("argument not passed") ;
print "success";
# some code

引数を受け取っていない場合は、引数が渡されていないというメッセージを取得する必要があります。そのように、すべての情報をログに記録します。印刷データをあげてみました。それは働いています。ただし、引数が渡されない場合。引数が渡されなかったデータが欲しい。

取り寄せは可能ですか?

4

1 に答える 1

1

これにより、上記の質問に対する答えが見つかりました。

Process process = Runtime.getRuntime().exec(new String[] {"perl","C:\\Perl\\bin\\try.pl", "uname=test"});
BufferedReader readError = new BufferedReader( new InputStreamReader(process.getErrorStream()));
    s = readError.readLine();
     System.err.println("perl said [ " + s + " ]");

このようにして、エラーの詳細をキャプチャします。ご提案いただきありがとうございます。また、perlスクリプトを次のように変更しました。

my $path_to_file = $ARGV[0] or   {print " Argument not passed! " };
于 2013-07-29T05:24:57.450 に答える