我必须从Java类调用Perl脚本。我能够使用
final ProcessBuilder builder = new ProcessBuilder("perl", "/home/abc.pl");
我想知道是否可以传递类似的参数
new ProcessBuilder("perl", "/home/abc.pl x y");
但这引发了错误。
有人可以建议如何做到这一点吗?
最佳答案
从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 x y”的文件(因为x和y是不同的参数,而不是文件名的一部分)。关于java - 通过Java类的参数寻求帮助来调用Perl脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15946674/