JRebel permite que el código recién compilado se vuelva a implementar sin reiniciar la aplicación. Me pregunto si hay alguna alternativa (¿gratis?). La página de preguntas frecuentes responde a esta pregunta, pero estoy seguro de que está sesgada hacia JRebel. Esta pregunta se hizo hace un año en este sitio, pero la vuelvo a plantear para ver si alguien tiene información nueva.
En una nota al margen, realmente me gusta JRebel, pero si hay una alternativa gratuita, estoy dispuesto a probarla.
Una nota adicional, estoy trabajando en un proyecto de código abierto, y ofrecen licencias gratuitas de un año a las personas que pueden demostrar que están en un proyecto de código abierto. Lo que funciona muy bien para mí (www.kuali.org), pero no estaré en ese proyecto para siempre.
Respuestas:
Eche un vistazo a DCEVM , es una modificación de HotSpot VM que permite redefiniciones de clase ilimitadas en tiempo de ejecución. Puede agregar / eliminar campos y métodos y cambiar los supertipos de una clase en tiempo de ejecución. Las características de DCEVM pueden integrarse en una futura actualización de Java como parte de JEP 159 .
Los archivos binarios disponibles en el sitio original están limitados a Java 6u25 y a versiones anteriores de Java 7. El proyecto se ha bifurcado en Github y admite versiones recientes de Java 7 y 8. El responsable del mantenimiento proporciona archivos binarios para máquinas virtuales de 32/64 bits en Windows / Linux A partir de Java 11, el proyecto se trasladó a un nuevo repositorio de GitHub y ahora también proporciona binarios para OS X.
DCEVM está empaquetado para Debian y Ubuntu, está convenientemente integrado con OpenJDK y puede invocarse con él
java -dcevm
. El nombre del paquete depende de la versión del JDK predeterminado:fuente
Hotswap Agent es una extensión de DCEVM que admite muchos frameworks Java (recarga de definición de Spring Beans, mapeo de entidades de Hibernate, configuración de nivel de registrador, ...).
También hay mucha documentación sobre cómo configurar DCEVM y binarios compilados para Java 1.7.
fuente
DCEVM admite redefiniciones de clase mejoradas y está disponible para JDK7 y JDK8 actuales.
https://github.com/dcevm/dcevm/releases
HotswapAgent es una alternativa gratuita de JRebel y admite DCEVM en varios Frameworks.
http://hotswapagent.org/
fuente
Por los chicos de Spring, se usa para la recarga de Grails pero también funciona con Java:
https://github.com/SpringSource/spring-loaded
fuente
He escrito un artículo sobre DCEVM : Spring-mvc + Velocity + DCEVM
Creo que vale la pena, ya que mi entorno funciona sin problemas.
fuente
He estado trabajando en un proyecto de código abierto que le permite reemplazar las clases en caliente más allá de lo que permite el intercambio en caliente: https://github.com/fakereplace/fakereplace
Puede o no funcionar para usted, pero apreciamos cualquier comentario
fuente
Es posible que desee echar un vistazo a esto:
Por el momento, esto solo permite que el cuerpo del método recién compilado se vuelva a implementar sin reiniciar la aplicación. Todo lo que tienes que hacer es ejecutarlo con un depurador. Lo probé en Eclipse y funciona espléndidamente.
Además, como Emmanuel Bourg mencionó en su respuesta ( JEP 159 ), existe la esperanza de tener soporte para la adición de supertipos y la adición y eliminación de métodos y campos.
Referencia: Java Whitepaper 135217: Fiabilidad, disponibilidad y facilidad de servicio
fuente
JRebel es gratis. No lo compres. Seleccione la opción "gratuita" (botón de opción) en la página "comprar". Luego seleccione "Social". Después de registrarse, obtendrá una clave de licencia JRebel completamente funcional. Luego puede descargar JRebel o usar la clave en su versión incrustada de IDEs. La captura, (sí, hay una captura), debe permitir que publiquen en su nombre (publicidad) una vez al mes en su línea de tiempo de FB o en su cuenta de Twitter. Les di mi cuenta de Twitter, no es problema, nunca la uso y nadie que conozco realmente la usa. Así que ahorre $ 260.
fuente