代码亲自跑一下,很好玩
Java 调用 perl
- 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";