Запуск утилиты командной строки Python из Java - PullRequest
3 голосов
/ 29 сентября 2010

Я разработал утилиту командной строки, которую нужно вызывать из приложения Java GUI. Команда, ответственная за Java GUI, хотела бы привязать мое приложение командной строки к кнопке в GUI; приложение Python таково, что в настоящее время у нас нет времени или интереса переписывать его на Java.

У меня нет никакого опыта в Java, поэтому я прошу вас:

Как лучше всего связать приложение Python из командной строки с кнопкой в ​​приложении GUI на основе Java?

Я очень обеспокоен управлением исключениями (как сказать Java, что Python вышел из строя).

Спасибо.

Ответы [ 3 ]

1 голос
/ 29 сентября 2010

Вы должны быть в состоянии выполнить порожденный процесс из Java, используя Runtime.exec () . Вот несколько примеров .

Убедитесь, что вы захватили stdout и stderr (одновременно - см. этот ответ для более подробной информации), чтобы вы могли сообщить об ошибках. Вы можете захватить код завершения приложения, поэтому убедитесь, что само приложение правильно сообщает об ошибках. Код ошибки был бы более надежным способом обнаружения ошибок (я бы подозревал) при анализе выходных потоков.

0 голосов
/ 29 сентября 2010

Я согласен с phlip - вы можете создать механизм сценариев в Java и использовать его для вызова своего кода Python.При условии, что в вашем коде Python не используются какие-либо специфичные для ОС вызовы библиотек или DLL, это должно работать нормально.Эта ссылка: http://jythonpodcast.hostjava.net/jythonbook/chapter10.html должна дать вам больше информации о необходимом механизме.

0 голосов
/ 29 сентября 2010

Рассматривали ли вы Jython? Вы можете: 1) использовать его для запуска скриптов Python (позволяя вызывать классы Java) 2) компилировать python в файлы классов, делая их доступными для обычного кода Java без присутствия jython во время выполнения Я использовал его только в первом шаблоне, но я видел тонны документов на втором.

...