目前,我正在从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
如果我没有收到任何参数,那么我们需要检索消息,没有传递参数。就像我想要记录所有信息。我试过给出打印数据。那很有效。但如果论证没有通过。我想要参数未传递的数据。
是否可以检索?
答案 0 :(得分: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! " };