Desde los primeros días de mi vida universitaria, he estado usando Java y el mayor problema que tenemos es ser absolutamente menos productivo que otros lenguajes interpretados. Todas las personas están seguras de que Java es uno de los mejores lenguajes compilados.
Sin embargo, ni Sun ni Oracle se han esforzado lo suficiente para resolver este problema. Uno de los problemas es, por supuesto, la recarga de clases.
Los últimos intentos de la comunidad para resolver este problema son el proyecto DaVinci Hotswap , JRebel , PlayFramework . Sin embargo, al momento de escribir esto todavía no eran maduros (imo) y nativos. Algunos de ellos no están preparados para la empresa, algunos no son compatibles con todos los IDE, algunos de ellos son proyectos universitarios inmaduros. El mapa de ruta e incluso el Java listo para el desarrollador están listos, pero la comunidad Java todavía no tiene una solución para la recarga de la clase sobre la marcha.
¿Es tan difícil para Oracle hacer un esfuerzo para resolver este problema? ¿Por qué la recarga de clases aún no se ha implementado de forma nativa?
Respuestas:
¿Qué pasa con JEE / J2EE? Esto se lanzó por primera vez hace 12 años. Esto es compatible directamente con Sun / Oracle y muchos otros proveedores.
¿Qué pasa con OSGi? Su primer lanzamiento fue hace casi 11 años. Eclipse (un IDE) está construido sobre él, Glassfish de Sun / Oracle y Apache Felix lo usan ampliamente. Puede usarlo con Spring-OSGi.
No se ha admitido de forma nativa en Java SE porque las aplicaciones empresariales fueron admitidas deliberadamente por los servidores de aplicaciones como productos separados.
fuente
Pruebe esto: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
Hay múltiples problemas complejos involucrados. En realidad, no conozco ninguna solución (para Java o no) que realice cambios estructurales en las entidades con estado. Los lenguajes dinámicos como Ruby o PHP realmente no hacen eso, no estoy seguro acerca de Erlang, pero creo que también perderá estado.
fuente