2010-02-18 3 views
0

Я пытаюсь запустить программу Perl в Java.Как эффективно вызывать программу Perl с Java?

Я использую:

process = Runtime.getRuntime().exec("getComps.pl"); 

но это дает:

Исключение: java.io.IOException: не может запустить программу "getComps.pl": CreateProcess ошибка = 193 ,% 1 не является приложением Win32 действует

Я также попытался:

process = Runtime.getRuntime().exec("cmd /c start getComps.pl"); 
process = Runtime.getRuntime().exec("cmd /c call getComps.pl"); 

Но это не дает никакого выхода.

Он дает пустой файл после выполнения программы и занимает много времени для выполнения.

Есть ли эффективный способ вызова Perl-программы из Java?

ответ

2

Я бы предположил, что проблема, с которой вы сталкиваетесь, заключается в том, что скрипт perl не является исполняемым на своем собственном, вам нужно вызвать Perl самостоятельно. Используя свой текущий подход, вероятно, можно просто сделать следующее:

process = Runtime.getRuntime().exec("perl getComps.pl") 

Но есть и другие варианты, посмотрите на ответы на this question.

+0

Это будет выглядеть только в текущем каталоге getComps.pl. Чтобы посмотреть на PATH: «perl -S getComps.pl» –

0

Есть ли у кого-нибудь опрос Perl2EXE? При этом вы можете конвертировать ваш Perl в EXE, а затем вызвать:

Process process = Runtime.getRuntime().exec("getComps <ARGS>") 
Смежные вопросы