JAVA - заставить одну программу взаимодействовать с другой

1

Я пытаюсь узнать, как заставить разные программы взаимодействовать друг с другом, но поиск информации в Интернете по этому вопросу был для меня невозможным. Я сам преподавал Flash/PHP-программист, который недавно изучил базовую Java.

Предположим, что есть игра, закодированная на Java, и у меня есть доступ к ее открытому исходному коду. Если бы я захотел сделать для него фреймы в секунду, я мог бы легко сделать это сейчас с помощью моих текущих знаний. Я бы открыл Eclipse, изучил код и нашел, где правильно разместить счетчик FPS, перекомпилируйте игру и сыграйте с новой перекомпилированной версией.

Это не то, что я пытаюсь узнать сейчас, хотя. Я хочу сделать автономный файл.exe или.jar, который, когда я его запустил, отобразит FPS в игре, без перекомпиляции. Мы видим, что люди все это время делают. Сейчас я играю в новый vegas с модом, который открывает файл.exe, который отображает карту оверлей в игре.

Однако я понятия не имею, как добиться чего-то подобного. В чем именно заключается логика таких программ? Какую тему я должен читать, чтобы понять, как это сделать?

Если пример FPS слишком сложный, я попробую более простой. У меня есть программа, которая печатает Hello World. Я хотел бы сделать еще одну программу, которая будет запускать Hello World, но изменить строку на что-то другое. Опять же, я даже не знаю, с чего начать.

спасибо

Теги:
ipc

1 ответ

2

Ключевое слово поиска, которое вы ищете, это "IPC" (Inter-Process Communications). Существует множество решений, см. Здесь и здесь для некоторых отправных точек.

Большинство решений связаны с одной или несколькими из следующих функций:

  • Розетки
  • Общая память
  • Именованные каналы (на платформах, которые его поддерживают)
  • Хранение данных в файлах/базах данных
  • Другая автоматизация (например, OLE для Windows, автоматизация инструментальных средств и т.д.)
  • Больше...

В вашем случае базовое решение на основе сетевых сокетов будет очень простым (ваша игра запускает базовый сервер, приложение вашего монитора подключается и периодически запрашивает частоту кадров, которую предоставляет ваша игра, что позволяет как локальный, так и дистанционный мониторинг и требует довольно минимальной суммы кода). В Java Interprocess Communication есть некоторые связанные начальные точки поиска.

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

  • 0
    Поисковое ключевое слово, которое вы ищете, - «IPC» - большое спасибо, мне было очень трудно найти правильные ключевые слова, которые мне нужны, чтобы исследовать больше

Ещё вопросы

Сообщество Overcoder
Наверх
Меню