Общение между рубином и Java - PullRequest
2 голосов
/ 22 марта 2012

В настоящее время я пишу плагин ruby ​​для приложения для рисования 3d (написано на c ++, ruby ​​- это язык сценариев).То, что я хочу сделать, это установить связь между этим и другим приложением, написанным на Java, обе программы работают на одном компьютере.Версия ruby, которая интегрирована в приложение для рисования 3d, довольно урезана и довольно проста, и, насколько я понимаю, имеет довольно ограниченные или несуществующие библиотеки сокетов.

Любые идеи о том, как обмениваться информацией между двумя приложениями, могутс благодарностью.

Объем обмена информацией будет довольно небольшим.

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

На ваш вопрос можно ответить многими, многими способами.Существует так много возможных решений ...

Один из самых простых и в то же время довольно эффективных методов, который мне приходит в голову, - это использовать стандартный ввод и стандартное перенаправление вывода для связи между программами (написано на любом языке) .

Ваша Java-программа должна выполнить Ruby-программу, перенаправив потоки ввода / вывода.Я не знаю функцию, которая будет использоваться в Java для этой задачи, но в Ruby этот метод имеет вид IO.popen(command,mode).

Ваша Ruby-программа, названная таким образом, просто читает из STDIN и пишет в STDOUT (могут использоваться простые методы gets и puts) .

Вы не сказали, для какой системы вы программируете, поэтому я не уверен, является ли ваша платформаспособен обрабатывать такое перенаправление или имена каналов (что будет вторым простым решением) .

0 голосов
/ 22 марта 2012

Если не требуется высокая производительность, вы можете использовать файл на диске компьютера для изменения информации между двумя приложениями。 например, если вы хотите перенести EVENT1 из приложения Ruby в приложение Java: Приложение Ruby записывает файл флага с именем event1.flag на диск dir, а приложение Java запускает Thead, продолжая поиск в каталоге .flag файла.

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