我不知道这是否可能,但可以尝试一下。
我在我的java程序中执行一个小的perl代码,就像这样
private void executePerlCode() {
Process process;
ProcessBuilder processBuilder;
BufferedReader bufferedReader = null;
try {
// this line is used to execute the perl program
processBuilder = new ProcessBuilder("perl", "D:\\test\\loop.pl");
process = processBuilder.start();
// To get the output from perl program
bufferedReader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line;
StringBuffer str = new StringBuffer();
while ((line = bufferedReader.readLine()) != null) {
str.append(line);
System.out.println(line);
}
// process.waitFor();
// Set the output on the textfield
// jTextArea1.setText(str.toString());
} catch (Exception e) {
System.out.println("Exception: " + e.toString());
} finally {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的 perl 代码是
for (my $i=0; $i <= 9; $i++) {
print "$i\n";
sleep(1);
}
我能够在我的 java 程序中获得 perl 程序的输出。但我希望 perl 代码为 java 代码提供连续输出。像这样,当 perl 中的循环第一次打印 'i' 的值时,我应该能够在 Java 代码中获得该值。这样我就可以根据 Perl 代码中的过程不断更新我的 Java UI。