Wie soll ich ein Perl-Skript in Java aufrufen?

8

Ich lese Runtime.getRuntime().exec("perl script.pl") ist eine Option, aber ist das der beste Weg, es zu tun?

Ich brauche eine Antwort von diesem Skript, daher muss ich in einigen Fällen die Rückgabe des Skripts lesen, obwohl ich es aus einer Textdatei in anderen Fällen lesen könnte.

Wie auch immer, ist exec() eine gute Möglichkeit, ein Perl-Skript von Java aus aufzurufen? Ich sollte beachten, ich arbeite an einer Java-Web-Anwendung, so dass Sicherheit ein Problem ist hier.

    
Fernando Briano 02.03.2009, 19:03
quelle

4 Antworten

9

Sie können Runtime .getRuntime() .exec() oder verwenden Sie die Prozess-API . Mit der Process API können Sie die Ausgabe des Skripts abrufen, sodass Sie beide kommunizieren können.

exitValue() und < a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Process.html#getInputStream%28%29"> getInputStream() scheint das zu sein, was Sie brauchen .

    
luiscubal 02.03.2009, 19:22
quelle
4

Dies skizziert, wie man es ziemlich elegant macht, obwohl es mehr Anstrengung als es wert ist: Ссылка

Übersicht:
Von JPL gut unterstützt, aber es ist ein komplizierter Prozess:

Der JPL-Präprozessor analysiert die JPL-Datei und generiert C-Code-Wrapper für Perl-Methoden. Es erzeugt auch Java- und Perl-Quelldateien.

Der C-Compiler kompiliert den Wrapper und verknüpft ihn mit der gemeinsam genutzten Bibliothek libPerlInterpreter.so, wodurch eine gemeinsam genutzte Bibliothek für den Wrapper entsteht.

Der Java-Compiler kompiliert die Java-Quelldatei, die native Methoden zum Laden des Wrappers verwendet.

Der Wrapper verbindet den Java-Code mit dem Perl-Code in der Perl-Quelldatei.

Glücklicherweise vereinfacht eine generische Makefile.PL den Prozess. Dies ist ein Perl-Skript, das ein Makefile für Sie generiert.

    
Frakkle 02.03.2009 19:19
quelle
3

exec () ist wahrscheinlich die beste Option und Sie können den Rückgabewert mit exitValue () . Vielleicht interessiert Sie auch Inline :: Java .

-John

    
John T 02.03.2009 19:06
quelle
1

Beachten Sie, dass jede Datei, die das Perl-Skript erstellt, im Java-Arbeitsordner erstellt wird. Beziehen Sie sich einfach auf diese Datei als './myPerlCreatedFile.ext'

    
kmonsoor 10.02.2011 11:00
quelle

Tags und Links