Я только что видел видео, показывающее, как Notch (из Minecraft славы) отлаживает и меняет Minecraft во время его работы. Он приостанавливает игру, что-то меняет в коде, а затем останавливает игру, где изменения вступают в силу немедленно, без необходимости перезапуска программы.
Как это работает? Какой вид техники используется для достижения этой цели?
Ответы:
Java может делать горячую замену из коробки. Если вы используете IDE, такую как Eclipse, она будет работать для смены тел методов. Если вы хотите применить другие изменения кода, вы можете использовать инструмент. JRebel - это продукт, который поддерживает больше случаев.
Я не хочу заниматься маркетингом этого продукта, но лично я не знаю другой альтернативы. На сайте JRebel есть отличное сравнение функций .
Надеюсь, это поможет.
источник
Это называется горячей заменой кода и позволяет среде IDE изменять работающий код через интерфейс отладки. Он поддерживается Sun JVM начиная с Java 1.4.1
Однако, если вы не используете (коммерческое) расширение JRebel JReM, оно ограничено изменениями внутри тел методов. Если вы добавляете / удаляете методы или классы или меняете подписи, вам нужно перезапустить JVM.
источник