Runtime.getRuntime.exec( "...");を使わずにperlコードを実行する方法はありますか? (Javaアプリケーションで解析する)?PerlをJavaに組み込む
答えて
のために求めているように見えます。これまでに私が見つけた最も有望なことは、CPANのInline::Javaモジュールです。 PerlからJavaを呼び出すことができますが、JavaからPerlを呼び出す(一部のJavaクラスを介して)こともできます。
いいえ、これは存在しないと思います。 JVM(JRuby、Jythonなど)に移植された言語はいくつかありますが、Perlはまだそれらの1つではありません。
thisは、私は最近、これに自分自身を見てきた何を
私はJava Scripting APIを使ってパイと同じように簡単だと宣言できました。
しかし、どうやらそれは、既存の実装のリストにはありません...だから
が、多分これは代わりに役立ちます:
java and perl
編集:私は "多分"
JPLが死んでいます。それを使用しないでください。インライン:: Javaは行く方法です。 – daotoad
Inline::Javaがを提供していましたクラスで。これを使用して、JavaコードからPerlコードを呼び出すことができます。
Graciliano M. Passos' PLJavaも、埋め込みインタープリタを提供します。
JPL(Java Perl Lingo)を使用しないでください - プロジェクトは終了し、最新のperlsから削除されました。
スクリプト言語を使用する標準的な方法は、JSR 223で導入されたJava Scripting Supportです。現時点でサポートされているスクリプト言語のリストについては、scripting project homepageを参照してください。残念ながら、Perlはまだ:-(
Inline::Perl
にありません受け入れられた方法です。しかし、JARから実行することができるJerlもあります。
だ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());
}
}
}
あなたはこれについて確信しています:**あなたは逆を行うことができます:Javaからperlを呼び出す**、それはミッションクリティカルなもので信頼できるですか? – FutuToad