Runtime.getRuntime().exec("perl C:\\Perl\\execise.pl");
Java 调用 perl 通过IO的方式来得到返回值
package fiveGame;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class JavaCallPerl {
public static void main(String[] args) throws IOException {
StringBuffer resultStringBuffer = new StringBuffer();
String lineToRead = "";
int exitValue = 0;
try {
Process proc = Runtime.getRuntime().exec("perl C:\\Perl\\execise.pl");
InputStream inputStream = proc.getInputStream();
BufferedReader bufferedRreader = new BufferedReader(new InputStreamReader(inputStream));
// save first line
if ((lineToRead = bufferedRreader.readLine()) != null) {
resultStringBuffer.append(lineToRead);
}
// save next lines
while ((lineToRead = bufferedRreader.readLine()) != null) {
resultStringBuffer.append("\r\n");
resultStringBuffer.append(lineToRead);
}
// Always reading STDOUT first, then STDERR, exitValue last
proc.waitFor(); // wait for reading STDOUT and STDERR over
exitValue = proc.exitValue();
} catch (Exception ex) {
resultStringBuffer = new StringBuffer("");
exitValue = 2;
}
System.out.println("exit:" + exitValue);
System.out.println(resultStringBuffer.toString());
}
}
perl
#!/usr/bin/perl -w
$pi = 3.141592654;
$circ = 2 * $pi * 12.5;
print "The circumference of a circle of radius 12.5 is $circ.\n";
分享到:
2011-07-13 15:38
浏览 6380
评论
2 楼
Tristan_S
2012-09-12
很长时间没碰perl了,这个不大了解
1 楼
ballanfeng
2012-09-11
请问调用perl时怎么传入参数?
我参考网上还有一种方式是:
String[] cmds = {"c:\\bin\\perl.exe","temp.pl","param1","param2"}
Process proc = Runtime.getRuntime().exec(cmds);
请问这2种方式有什么不一样?