Как найти и выполнить метод в другом Java-приложении, работающем в данный момент на компьютере с использованием Java? - PullRequest
2 голосов
/ 26 сентября 2011

Например, допустим, у меня есть hello.java (произвольно), если он был запущен, и пользователь изменил некоторую доступную (не приватную) переменную в этом приложении, предоставив ввод во время работы, это приложение будет иметь переменную, отличную от переменной еще не выполнено. А другая программа (предпочтительно Java) может получать или показывать обновленную информацию об этой переменной из этого приложения.

Ответы [ 3 ]

5 голосов
/ 26 сентября 2011

Переменная содержит часть информации в памяти.Если вы хотите сделать его доступным из другой программы, у вас есть два варианта:

  • сделать его доступным по некоторому протоколу связи (обычный сокет, RMI и т. Д.)
  • сохранить его впостоянное хранилище (файловая система, база данных), и вторая программа считывает постоянное значение из этого постоянного хранилища.
1 голос
/ 26 сентября 2011

У вас проблема с доступом к объекту в JVM удаленно. RMI кажется хорошим выбором для этого.

Здесь будет две части к вашему приложению

  1. RMI-сервер, который будет вашим приложением, где переменная вероятность должна произойти.
  2. RMI-клиент, который будет обращаться к серверу для получения последней информации об обновлении.

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

0 голосов
/ 26 сентября 2011
  1. собственный протокол (через сокет)
  2. встроить HTTP-сервер в ваше приложение и реализовать коммуникацию на основе веб-службы.
  3. используйте JMX
  4. Использовать JDI (интерфейс отладчика Java).

$ 1 и $ 2 требуют некоторой модификации контролируемого приложения. $ 3 и $ 4 не требуют каких-либо изменений вашего приложения.

...