寻找帮助调用带有java类参数的perl脚本

时间:2013-04-11 10:40:05

标签: java perl perl-module

我必须从Java类调用Perl脚本。我可以使用

来做到这一点
final ProcessBuilder builder = new ProcessBuilder("perl", "/home/abc.pl");

我想知道我是否可以传递像

这样的参数
new ProcessBuilder("perl", "/home/abc.pl  x y");

但这是一个错误。

有人可以建议如何做到这一点吗?

2 个答案:

答案 0 :(得分:2)

来自the documentation

  

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");

您调用的程序的每个参数都需要是ProcessBuilder构造函数的单独参数。

new ProcessBuilder("perl", "/home/abc.pl", "x", "y");

否则你调用等价的perl "/home/abc.pl x y",它将无法找到名为“/home/abc.pl xy”的文件(因为x和y是不同的参数,不是文件名的一部分)

答案 1 :(得分:2)

使用以下代码从java执行perl代码。

final List<String> commands = new ArrayList<String>();                

commands.add("perl");
commands.add("/home/abc.pl");
commands.add("x");
commands.add("y");
ProcessBuilder pb = new ProcessBuilder(commands);