Perl 内联::java研究配置

Perl 内联::java研究配置,perl,inline,perl-module,Perl,Inline,Perl Module,内联文档对学习如何使用学习配置没有太大帮助, 有人能解释一下调用一个简单的void方法打印一个方法(比如Hello())所涉及的语法吗 另外,对于外部java文件,是否需要将其放在特定的目录中,还是放在perl脚本的同一目录中?让我们从文件/home/foo/java\u src/Hello.java开始,该文件包含: public class Hello { public Hello() {} public void instance_hello() { System.out.

内联文档对学习如何使用学习配置没有太大帮助, 有人能解释一下调用一个简单的void方法打印一个方法(比如Hello())所涉及的语法吗


另外,对于外部java文件,是否需要将其放在特定的目录中,还是放在perl脚本的同一目录中?

让我们从文件
/home/foo/java\u src/Hello.java
开始,该文件包含:

public class Hello {
    public Hello() {}
    public void instance_hello() { System.out.println("hello world"); }
    public static void static_hello() { System.out.println("HELLO WORLD"); }
}
首先解决第二个问题,
使用内联Java…
之后的第一个参数可以是文件名,因此您可以将源文件放在任意位置,并在perl代码中通过其文件名引用它:

use Inline Java => '/home/foo/java_src/Hello.java';
$obj = Hello->new();
$obj->instance_hello();      # "hello world"
Hello->static_hello();       # "HELLO WORLD"
请注意,到目前为止,您不需要进行
研究。
Hello
类是在源代码中定义的,由
Inline::Java
模块直接读取,因此该模块在Perl中自动创建并填充
Hello
命名空间

STUDY
针对的类不是由
Inline::Java直接解析的类。因此,让我们假设我们的
Hello
类已编译成一个名为
/home/foo/jars/Hello.jar
jar
文件。现在要使用
Hello
类,您需要(1)在
CLASSPATH
中包含
Hello.jar
,以及(2)使用
STUDY
告诉
Inline::Java
创建
Hello
命名空间:

use Inline Java => 'STUDY',
    CLASSPATH => '/home/foo/jars/hello.jar',
    STUDY => ['Hello'];
$obj = Hello->new;
Hello->static_hello;     # "HELLO WORLD"
$obj->instance_hello;    # "hello world"
我们包括第一个参数
STUDY
,以向
Inline::Java
发出信号,表明我们没有将任何源代码直接传递给模块。我们还可以传递有效的源代码或有效的源代码文件名

use Inline Java => 'public class Nothing() { }',
    CLASSPATH => '/home/foo/jars/hello.jar',
    STUDY => ['Hello'];

这是一个非常狭隘的主题(使用Inline::Java在Perl脚本中包含Java代码),恐怕需要一段时间才能找到答案。你可能会有更好的运气订阅和张贴上inline@perl.org. 有关详细信息,请参阅。