Acabo de ver un video que muestra cómo Notch (de la fama de Minecraft) está depurando y cambiando Minecraft mientras se está ejecutando. Pausa el juego, cambia algo en el código y luego detiene el juego donde el cambio tiene efecto inmediato sin la necesidad de reiniciar el programa.
¿Como funciona esto? ¿Qué tipo de técnica se utiliza para lograr esto?
Respuestas:
Java puede hacer un intercambio directo fuera de la caja. Si usa un IDE como Eclipse, funcionará para cambiar los cuerpos de los métodos. Si desea aplicar otros cambios de código, puede utilizar una herramienta. JRebel es un producto que admite más casos.
No quiero hacer marketing para ese producto, pero personalmente no conozco ninguna otra alternativa. En el sitio web de JRebel hay una buena comparación de características .
Espero que ayude.
fuente
Se llama reemplazo de código activo y permite que un IDE cambie el código de ejecución en vivo a través de la interfaz de depuración. Ha sido compatible con Sun JVM desde Java 1.4.1
Sin embargo, a menos que use la extensión JRebel JVM (comercial), está limitada a los cambios dentro de los cuerpos de los métodos. Si agrega / elimina métodos o clases, o cambia las firmas, debe reiniciar la JVM.
fuente