如何从Perl调用Java程序?

Ben*_*man 0 java perl

我是Perl的新手,我正在尝试做一些事情而无法找到答案.

我创建了一个Java项目,其中包含一个获取多个输入参数的主类.

我想用Perl包装我的Java:我想创建一个获取输入参数的Perl脚本,然后将它们传递给Java程序,然后运行它.

例如:

如果我的主叫mymain,我这样称呼它:mymain 3 4 hi(3,4并且hi是输入参数),我想创建一个名为Perl程序myperl,当它被调用作为myperl 3 4 hi将传递参数给Java程序并运行它.

我怎样才能做到这一点?

Chi*_*hip 5

运行Java程序就像运行任何其他外部程序一样.

你的问题有两个部分:

  1. 如何从Perl获取参数到Java程序?
  2. 如何在Perl中运行该程序?

对于(1)你可以做类似的事情

my $javaArgs = " -cp /path/to/classpath -Xmx256";
my $className = myJavaMainClass;
my $javaCmd = "java ". $javaArgs ." " . $className . " " . join(' ', @ARGV);
Run Code Online (Sandbox Code Playgroud)

注意join()函数 - 它会将所有参数放到Perl程序中并用空格分隔它们.

对于(2)你可以关注@AurA的回答.

这不会捕获(即放入变量$ret)命令的输出,只是返回代码,就像0成功一样.

这将使用Java程序的整个输出填充$ out(您可能不需要这样).

这更复杂,但允许在输出上进行更多操作.

有关这方面的更多信息,请参阅perldoc -f open.