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

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

3 ответа

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

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

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

Здесь будет две части вашего приложения

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

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

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

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

Другие вопросы по тегам