我有一个Java程序,它有一个静态方法
private static int checkURL(String currentURL)
从我的perl脚本中,我想调用此方法并获取此方法的返回值。
我有一个约束,我无法使用CPAN提供的任何内置Perl模块。
我想在Perl中通过system()命令调用Java但问题是如何调用此方法并获取返回代码?
答案 0 :(得分:0)
调用外部命令并取回结果(直接来自http://www.perlhowto.com/executing_external_commands)
#-- scalar context
$result = `command arg1 arg2`;
答案 1 :(得分:0)
使用Java
模块
use Java;
my $java = new Java;
my $obj = $java->create_object("com.my.Class","constructor parameter");
$obj->checkURL("http://www.google.com/");
$obj->setId(5);
Iniline::Java也是Java / Perl集成的着名模块。
编辑:我有一个约束,我不能使用CPAN提供的任何内置perl模块。
对不起,我没有看到。我曾经尝试过类似下面的东西。Hello.java
class Hello {
// Your program begins with a call to main().
public static void main(String args[]) {
System.out.println("This is a simple Java program to test return code.\n");
System.exit(100);
}
}
test.pl
#!/usr/bin/perl
use strict;
use warnings;
my $command = "java Hello";
print "Command is $command:\n";
system($command);
my $retval = $? >> 8;
print "The return code is $?\n";
print "retval is $retval\n";
运行它
perl test.pl
输出
Command is java Hello:
This is a simple Java program to test return code.
The return code is 25600
retval is 100