有什麼辦法可以執行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
- 3. 匹配包含在Perl
- 4. 如何在sed中包含perl命令?
- 5. 在Perl中包含Hashes內的哈希
- 6. 在文件名中包含變量perl
- 7. Perl包含動態文件
- 8. Perl - 模式包含新行
- 9. 包含引號的Perl xml
- 10. 索引參數包含。 perl
- 11. 如何包含文件在Perl 6
- 12. XCode 4.x不包含Perl MakeMaker。 brew failed - 請求Perl文件。
- 13. 64位perl是否包含所有32位perl模塊?
- 14. 是否有理由在Perl包中包含shebang行?
- 15. 包(「C4" ,$位)在Perl
- 16. 無法找到@INC中的Connection.pm(@INC包含:/usr/local/lib/perl/5.14.2/etc/perl /usr/local/share/perl/5.14.2 ....)at ./select.cgi在線
- 17. Perl PP不包含切換模塊
- 18. perl腳本參數包含雙定額「
- 19. 從包含多個腳本(殼/ perl的)
- 20. 的Perl:更換包含問號
- 21. Perl字符串包含括號
- 22. 包含換行符的Perl參數
- 23. 包含「^」的Perl XOR轉義字符串
- 24. Perl Oauth2包
- 25. Perl包Tie :: CSV_File
- 26. JavaScript Perl包
- 27. 含義LINE的:在Perl
- 28. 在Perl-CGI生成頁面中包含JavaScript
- 29. Perl的檢查如果一個標量包含在陣列中
- 30. 在數組中只包含字符串的Perl引號
你確定:**你可以做相反的事情:調用Java的perl **,它在任務關鍵的東西中可靠嗎? – FutuToad 2014-01-14 14:53:11