2016-12-31 8 views
3

У меня есть программа Python status.py, которая печатает некоторые статусные обновления (строки) на консоли. Однако мне нужно написать программу JavaFX Display.java, которая запускает программу Python, а затем печатает обновления статуса программы Python до TextArea.Отправить данные из программы Python в программу Java

Для этого я изменил status.py, чтобы записать его статус обновления в текстовый файл, а затем программа Java прочитала текстовый файл в TextArea.

Метод текстового файла работает, но я чувствую, что есть лучший способ общения. Я думаю о том, что программа Python записывает свои обновления статуса в сокет и имеет программу Java для прослушивания сокета с использованием ServerSocket.

Использует сетевой подход, такой как передача через сокеты, лучший способ достичь связи между status.py и Display.java? Если нет, то каков наилучший способ добиться такой межпроцессной коммуникации?

+1

Розетки - вполне разумное средство межпроцессного общения, особенно межъязычное. – Amber

+1

проверить это: http://stackoverflow.com/questions/17262364/passing-data-from-a-java-program-to-a-python-program-and-getting-results-back –

+0

Спасибо. Я, вероятно, поеду с сокетами. У меня есть некоторые специальные библиотеки Python, которые я использую, и я не уверен, как это будет работать с Jython. Я никогда не использовал Jython, но я, конечно же, более подробно рассмотрю его в будущем. – jshapy8

ответ

1

Есть два варианта для передачи информации от процесса Python к процессу Java:

  1. популярных библиотеки сетей Java будут сделать его легко читать данные через сокет. Поскольку вы можете легко открыть сокет в Python, внедрение сокетов будет самым простым решением.
  2. Если у вас есть опыт работы с Jython, вы можете исключить необходимость взаимодействия между процессами, включив код Python в код Java.