Как мне вызвать скрипт Perl на Java?

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

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

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

4 ответов


можно использовать Runtime.getRuntime().exec() или использовать API процесса. API процесса позволяет получить выходные данные скрипта, так что вы можете иметь оба общаться.

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


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

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

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

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

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

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

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


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

-Джон


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