Полезно ли компилировать классы Java во время выполнения для проекта обновления без остановки сервера?
Я полагаю, вы имеете в виду, что обновление вновь скомпилированных классов на сервере, не останавливая его. Вы всегда можете это сделать, но если класс уже загружен, это не будет иметь никакого значения, и jvm будет продолжать использовать более старую версию класса.
И следующий вопрос: могу ли я заменить класс существующего объекта? I означает обновление некоторого поведения метода без воссоздания объекта.
Тот же ответ, что и для первого вопроса. Если класс уже загружен, то JVM будет использовать старый метод/поведение. И если у вас есть какой-то объект класса, значит, он уже загружен.
Вы можете сделать это с помощью API отладки, но это не рекомендуется делать в производственной среде. –
Лучшей идеей было бы использовать модульную структуру, такую как OSGi, тогда вы можете заменить части системы во время выполнения. – Kayaman