Как мне вызвать скрипт 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'