Как найти и выполнить метод в другом Java-приложении, работающем в данный момент на компьютере с использованием Java?
Например, допустим, у меня есть hello.java (произвольно), если он был запущен и пользователь изменил некоторую доступную (не приватную) переменную в этом приложении, предоставляя ввод во время работы, это приложение будет иметь переменную, отличную от той, которая еще не была выполнена, И другая программа (предпочтительно Java) может получить или показать обновленную информацию об этой переменной из этого приложения.
3 ответа
Переменная содержит часть информации в памяти. Если вы хотите сделать его доступным из другой программы, у вас есть два варианта:
- сделать его доступным, используя некоторый протокол связи (обычный сокет, RMI и т. д.)
- сохраните его в постоянном хранилище (файловая система, база данных) и попросите вторую программу прочитать постоянное значение из этого постоянного хранилища.
Ваша проблема доступа к объекту в JVM удаленно. RMI кажется хорошим выбором для этого.
Здесь будет две части вашего приложения
- RMI-сервер, который будет вашим приложением, где предполагается случайная переменная.
- Клиент RMI, который будет обращаться к серверу для получения последней информации об обновлении.
Есть много хороших учебников, включая ссылку на вики выше. Проверьте это.
- проприетарный протокол (через сокет)
- встроить HTTP-сервер в ваше приложение и реализовать коммуникацию на основе веб-службы.
- использовать JMX
- Используйте JDI (интерфейс Java Debugger).
$ 1 и $2 требуют некоторой модификации контролируемого приложения. $3 и $4 не требуют каких-либо изменений вашего приложения.