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 回答