Получение Java для общения с Python, C, C ++ и Ruby - PullRequest
2 голосов
/ 19 января 2011

Мне удалось заставить ProcessBuilder запускать внешние сценарии, но мне все еще нужно настроить Java для взаимодействия с внешними сценариями.Я полагаю, что должен получать потоки ввода / вывода от процесса и использовать их для отправки и получения данных.У меня больше всего проблем с вводом сценариев.Кажется, что я могу получить выходные данные из сценариев с помощью функции печати сценария, но я не могу получить сценарии для регистрации ввода из основной программы Java.

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

Ответы [ 3 ]

2 голосов
/ 19 января 2011

Метод getOutputStream () в классе Process возвращает поток, в который вы можете записать в Java, который подключается к потоку stdin процесса.Вы должны иметь возможность читать это так, как обычно читаете stdin для каждого языка (например, cin для C ++, scanf для C, STDIN.read для Ruby, не знаю Python!)

Если это то, чтовы делаете, и это не работает (ваш вопрос звучит так, как будто это может быть, но трудно сказать), не могли бы вы опубликовать код, чтобы было легче увидеть, что вы делаете неправильно?

1 голос
/ 19 января 2011

Вам, вероятно, следует использовать стандартный механизм межпроцессного взаимодействия, такой как конвейер или сокет.

На всех этих языках есть библиотеки, доступные для обоих, и эта стратегия обеспечивает связь между любыми 2 вашими процессами (Java / Ruby, Ruby/ Python, Java / C и т. Д.)

0 голосов
/ 19 января 2011

Что касается того, чтобы заставить Java общаться с Python, вы рассматривали Jython ?

Что касается C и C ++, стандартной идеей является использование собственного интерфейса Java . Раз вы можете общаться с C / C ++, вы можете использовать C / C ++ для общения практически с любым другим языком, включая Python и Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...