当前位置: 首页 > 面试题库 >

如何从Java调用Perl?

苏磊
2023-03-14
问题内容

我有一个想从Java使用的Perl模块。是否可以使用Windows上的ActiveState
Perl或Linux随附的通用Perl来调用此代码?我找到了对JPL的引用,但似乎不再维护了。


问题答案:

Inline-Java是从Perl调用Java的常用库,因此本文提出了
org.perl.java

模块,该模块应允许按要求从Java调用Perl。

但是,由于不同的JVM的JNI实现的不可预测性,很难说JVM和Perl的组合将起作用。通常,所需的是具有MULTIPLICITY的Perl,并在其中编译线程。这意味着他使用定制的Perl。

否则, Inline :: Java ::
Callback
允许您从Java调用Perl函数。为此,您需要创建一个**org.perl.inline.java.InlinePerlCaller** 对象。这是典型用法的示例:

use Inline Java => <<END ;
import java.util.* ;
import org.perl.inline.java.* ;

class Pod_regexp extends InlineJavaPerlCaller {
    public Pod_regexp() throws InlineJavaException {
    }

    public boolean match(String target, String pattern)
        throws InlineJavaException {
        try {
            String m = (String)CallPerlSub("main::regexp",
            new Object [] {target, pattern}) ;

            if (m.equals("1")){
            return true ;
        }
    }
    catch (InlineJavaPerlException pe){
        // $@ is in pe.GetObject()
    }

    return false ;
    }
}
END

my $re = new Pod_regexp() ;
my $match = $re->match("Inline::Java", "^Inline") ;
print($match . "n") ; # prints 1

sub regexp {
    my $target = shift ;
    my $pattern = shift ;

    return ($target =~ /$pattern/) ;
}


 类似资料:
  • 问题内容: 如何从Java调用GraphViz,以及如何使用Java调用GraphViz函数?为了访问用于构建点图的GraphViz库,必须包含哪些必需的jar文件?是否有用于生成点图的示例程序 问题答案: 检查此 API,它很简单,并且具有几种输出格式(即pdf gif ..etc)。 编辑2016年5月: 许多人评论说该API不再可用;这里是其源代码: 首先,您需要创建并复制以下文件,然后粘贴

  • 问题内容: 我需要从我的C ++程序中运行以下行: java -jar test.jar text1 text2 Java应用程序将给出一个float值并将其提供给c ++程序。 我怎样才能做到这一点?我从未从ms visual studio C ++文件中调用过Java东西。 问题答案: 当我直接在命令提示符下运行java命令时,它可以工作。但是当我从c ++文件运行命令时,错误显示“系统无法执

  • 问题内容: 我不是在寻找像Web服务这样的常见答案。我正在寻找在同一台机器上运行的轻量级解决方案。 编辑:我正在寻找Java中调用.NET方法的方法 问题答案: 我相信Java可以与COM对话,.NET可以公开COM接口。因此,这可能是一种非常轻巧的解决方案,不需要任何第三方。还可以选择使用套接字在程序之间进行通信,这不需要在计算机上安装大量的IIS实例。

  • 问题内容: 我需要从PowerShell调用Java程序(jar文件)。以下代码有效: 但是我需要在一个过程中运行该应用程序(使用)。 我正在尝试以下成功: 错误: 知道如何解决吗? 问题答案: 您将需要为Powershell使用以下格式: 或者您可以使用的其他选项是Start-job:

  • 问题内容: 我需要从Java调用C#函数,为此,我创建了以下代码。我有一个创建的Java头文件Authenticator.h,代码如下: 然后,我创建了一个身份验证的C#函数 然后,我尝试使用以下代码从C ++(项目创建dll)中调用C#函数; 最后创建一个需要从Java调用的dll。该dll已创建,并且可以在Java中很好地加载它,但是在Java中却收到此错误日志。我可能会错过什么。 问题答案:

  • 问题内容: 我有一个通常从命令行启动的Java程序。从命令行启动后,Java程序将一直运行直到被按下Ctrl + C退出或杀死另一个脚本中的命令为止。Java程序向控制台输出错误消息(如果有)。 现在,我想开发基于Express的NodeJs Web应用程序。当用户单击链接(运行)时,单击处理程序将调用Ajax请求,这将导致后端NodeJs脚本运行该Java程序(如果尚未运行)。另一个链接(停止)