有什么办法可以执行perl代码而不必使用Runtime.getRuntime.exec(“...”); (解析在Java应用程序)?在Perl中包含Perl
回答
我最近一直在寻找这个自己。我迄今发现的最有希望的事情是CPAN上的Inline::Java模块。它允许从Perl调用Java,但也可以(通过一些包含的Java类)从Java调用Perl。
不,我不相信这存在。虽然有几种语言移植到JVM(JRuby,Jython等),但Perl还不是其中之一。
this看起来就像你问
我可以发誓使用Java Scripting API作为馅饼很容易。
但显然它不是现有实现的名单上...
所以,也许这会有所帮助,而不是:
java and perl
编辑:我说, “也许”
JPL已经死了。不要使用它。 Inline :: Java是要走的路。 – daotoad 2009-06-09 19:22:32
Inline::Java提供在一个班级。您可以使用它从Java代码中调用Perl代码。
Graciliano M. Passos' PLJava也提供了一个嵌入式解释器。
不要使用JPL(Java Perl Lingo) - 该项目已经死亡,并且已经从现代Perl中删除。
将来,使用任何脚本语言的标准方法是通过JSR 223中引入的java脚本支持。请参阅scripting project homepage以获取当前支持的脚本语言列表。不幸的是,Perl是不是还存在:-(
Inline::Perl
是接受的方式。但也有Jerl可以从JAR运行。
这里的an example不使用VM包装(这是不是这样。有趣)
下面是一个使用jerlWrapper
类一些例子来更容易地代码:
import jerlWrapper.perlVM;
public final class HelloWorld {
/* keeping it simple */
private static String helloWorldPerl = "print 'Hello World '.$].\"\n\";";
public static void main(String[] args) {
perlVM helloJavaPerl = new perlVM(helloWorldPerl);
helloJavaPerl.run();
}
}
或
import jerlWrapper.perlVM;
public final class TimeTest {
/* The (ugly) way to retrieve time within perl, with all the
* extra addition to make it worth reading afterwards.
*/
private static String testProggie = new String(
"my ($sec, $min, $hr, $day, $mon, $year) = localtime;"+
"printf(\"%02d/%02d/%04d %02d:%02d:%02d\n\", "+
" $mon, $day + 1, 1900 + $year, $hr, $min, $sec);"
);
public static void main(String[] args) {
perlVM helloJavaPerl = new perlVM(testProggie);
boolean isSuccessful = helloJavaPerl.run();
if (isSuccessful) {
System.out.print(helloJavaPerl.getOutput());
}
}
}
Jerl for Perl5已被弃用。 Rakudo perl提供了VM选项:http://en.wikipedia.org/wiki/Rakudo_Perl_6 – michaelt 2015-01-06 22:46:57
- 1. 匹配包含在Perl
- 2. 在Perl中包含Hashes内的哈希
- 3. 如何在sed中包含perl命令?
- 4. 在文件名中包含变量perl
- 5. XCode 4.x不包含Perl MakeMaker。 brew failed - 请求Perl文件。
- 6. 包(“C4" ,$位)在Perl
- 7. 从包含多个脚本(壳/ perl的)
- 8. 包含“^”的Perl XOR转义字符串
- 9. 包含换行符的Perl参数
- 10. Perl字符串包含括号
- 11. Perl PP不包含切换模块
- 12. perl脚本参数包含双定额“
- 13. Perl来exec的程序包含参数“@”
- 14. Perl Oauth2包
- 15. 如何在Perl脚本中包含所有/某些“子模块”?
- 16. 在Perl数组中包含文件数据
- 17. perl的检查线,在列表中包含数组
- 18. 导出库路径和包含在perl中
- 19. 如何访问名称包含在变量中的Perl常量?
- 20. Perl:在脚本中包含/嵌入模块
- 21. 是否可以手动将CPAN库包含在Perl脚本中?
- 22. 在数组中只包含字符串的Perl引号
- 23. 在Perl-CGI生成页面中包含JavaScript
- 24. 你可以在Perl文件中包含PHP吗?
- 25. 如何包含在Perl中使用时文件
- 26. 严丝合缝开始与包含在字符串中的Perl
- 27. @_ -1在Perl中的含义是什么?
- 28. 什么@ {hash {$ key}}在Perl中的含义?
- 29. 在Perl中=〜的含义是什么?
- 30. 如何在Perl中序列化闭包?
你确定:**你可以做相反的事情:调用Java的perl **,它在任务关键的东西中可靠吗? – FutuToad 2014-01-14 14:53:11