如何从Perl调用Java程序?
我是Perl新手,我正在尝试做一些事情,但找不到答案 我创建了一个Java项目,其中包含一个获取多个输入参数的主类 我想用Perl包装我的Java:我想创建一个Perl脚本来获取输入参数,然后将它们传递给Java程序并运行它 例如: 如果我的main名为如何从Perl调用Java程序?,java,perl,Java,Perl,我是Perl新手,我正在尝试做一些事情,但找不到答案 我创建了一个Java项目,其中包含一个获取多个输入参数的主类 我想用Perl包装我的Java:我想创建一个Perl脚本来获取输入参数,然后将它们传递给Java程序并运行它 例如: 如果我的main名为mymain,我这样称呼它:mymain34hi(3,4和hi是输入参数),我想创建一个名为myperl的Perl程序,当它作为myperl34hi调用时,将把参数传递给Java程序并运行它 我该怎么做 $javaoutput = `java j
mymain
,我这样称呼它:mymain34hi
(3
,4
和hi
是输入参数),我想创建一个名为myperl
的Perl程序,当它作为myperl34hi
调用时,将把参数传递给Java程序并运行它
我该怎么做
$javaoutput = `java javaprogram`;
or
system "java javaprogram";
对于jar文件
$javaoutput = `java -jar filename.jar`;
or
system "java -jar filename.jar";
对于jar文件
$javaoutput = `java -jar filename.jar`;
or
system "java -jar filename.jar";
运行Java程序就像运行任何其他外部程序一样 你的问题分为两部分:
my $javaArgs = " -cp /path/to/classpath -Xmx256";
my $className = myJavaMainClass;
my $javaCmd = "java ". $javaArgs ." " . $className . " " . join(' ', @ARGV);
请注意join()
函数-它将把所有参数放入Perl程序,并用空格分隔
对于第(2)项,您可以按照@AurA的答案进行操作
- 使用
函数system()
my $ret = system("$javaCmd");
$ret
)命令的输出,只捕获返回代码,如0
,以获得成功
- 使用反勾号
my $out = `$javaCmd`;
- 使用管道
open(FILE, "-|", "$javaCmd"); my @out = <FILE>
open(文件“-|”和“$javaCmd”); 我的@out=
有关这方面的更多信息,请参见。运行Java程序就像运行任何其他外部程序一样 你的问题分为两部分:
my $javaArgs = " -cp /path/to/classpath -Xmx256";
my $className = myJavaMainClass;
my $javaCmd = "java ". $javaArgs ." " . $className . " " . join(' ', @ARGV);
请注意join()
函数-它将把所有参数放入Perl程序,并用空格分隔
对于第(2)项,您可以按照@AurA的答案进行操作
- 使用
函数system()
my $ret = system("$javaCmd");
$ret
)命令的输出,只捕获返回代码,如0
,以获得成功
- 使用反勾号
my $out = `$javaCmd`;
- 使用管道
open(FILE, "-|", "$javaCmd"); my @out = <FILE>
open(文件“-|”和“$javaCmd”); 我的@out=
有关这方面的更多信息,请参阅。感谢您的快速回复;感谢您的快速回复,现在我得到:错误:无法找到或加载主类dbtools.jar您可能需要设置类路径。首先尝试在外部运行java程序,然后在内部使用相同的语法;感谢您的快速回复,现在我得到:错误:无法找到或加载主类dbtools.jar您可能需要设置类路径。首先尝试在外部运行java程序,然后在内部使用相同的语法。在windows计算机上运行java调用perl脚本:process=r.exec(“cmd/c perl D:\\perlexamples\\hello.pl”)\在windows计算机上运行java调用perl脚本:process=r.exec(“cmd/c perl D:\\perlexamples\\hello.pl”)\