Как я могу назвать Perl Script в Java?

Я читаю Runtime.getRuntime().exec("perl script.pl") вариант, но это лучший способ сделать это?

Мне нужен ответ из этого script, поэтому в некоторых случаях мне придется прочитать return script, хотя я мог бы прочитать его из текстового файла в других случаях.

Во всяком случае, есть exec() хороший способ вызова Perl script из Java? Я должен отметить, что я работаю над веб-приложением Java, поэтому проблема безопасности здесь.

Ответы

Ответ 1

Вы можете использовать Runtime .getRuntime() .exec() или используйте Process API. API-интерфейс процесса позволяет получить вывод script, поэтому вы можете обмениваться данными.

exitValue() и getInputStream() кажется быть тем, что вам нужно.

Ответ 2

Это описывает, как сделать это довольно элегантно, хотя это может быть больше усилий, чем стоит: http://search.cpan.org/~nwclark/perl-5.8.9/jpl/docs/Tutorial.pod

Обзор:
Хорошо поддерживается JPL, но это сложный процесс:

Препроцессор JPL анализирует файл .jpl и генерирует C-оболочки для методов Perl. Он также генерирует исходные файлы Java и Perl.

Компилятор C компилирует оболочку и связывает ее с общей библиотекой libPerlInterpreter.so, создавая общую библиотеку для обертки.

Компилятор Java компилирует исходный файл Java, который использует собственные методы для загрузки оболочки.

Оболочка соединяет код Java с кодом Perl в исходном файле Perl.

К счастью, общий Makefile.PL упрощает этот процесс. Это Perl script, который создает Makefile для вас.

Ответ 3

exec(), скорее всего, лучший вариант, и вы можете поймать его возвращаемое значение с помощью exitValue(). Вы также можете быть заинтересованы в Inline:: Java.

-Джон

Ответ 4

помните, какой файл Perl script создается, он создается в рабочей папке Java. просто обратитесь к этому файлу как './myPerlCreatedFile.ext'