Depuis les premiers jours de ma vie universitaire, j'utilise Java et le plus gros problème que nous ayons est absolument moins productif que les autres langages interprétés. Tout le monde est sûr que java est l'une des meilleures langues compilées.
Cependant, ni Sun ni Oracle n'ont déployé suffisamment d'efforts pour résoudre ce problème. Un des problèmes est, bien sûr, le rechargement des classes.
Les dernières tentatives de la communauté pour résoudre ce problème sont le projet DaVinci Hotswap , JRebel , PlayFramework . Cependant, au moment d'écrire ces lignes, ils n'étaient pas encore matures (imo) et natifs. Certains d'entre eux ne sont pas prêts pour l'entreprise, certains ne sont pas compatibles avec tous les IDE, certains sont des projets universitaires immatures. La feuille de route et même Java prêt pour les développeurs est prête, mais la communauté Java n'a toujours pas de solution pour le rechargement à la volée des classes.
Est-il si difficile pour Oracle de déployer des efforts pour résoudre ce problème? Pourquoi le rechargement de classe n'a-t-il pas encore été implémenté nativement?
Réponses:
Qu'en est-il de JEE / J2EE? Cela a été publié pour la première fois il y a 12 ans. Ceci est pris en charge directement par Sun / Oracle et de nombreux autres fournisseurs.
Et OSGi? Sa première sortie remonte à près de 11 ans. Eclipse (un IDE) est construit dessus, Glassfish de Sun / Oracle et Apache Felix l'utilisent largement. Vous pouvez l'utiliser avec Spring-OSGi.
Il n'a pas été pris en charge nativement dans Java SE car les applications d'entreprise ont été délibérément prises en charge par les serveurs d'applications en tant que produits distincts.
la source
Essaye ça: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
Il y a plusieurs problèmes complexes impliqués. Je ne suis en fait au courant d'aucune solution (pour Java ou non) qui apporte des modifications structurelles aux entités avec état. Les langages dynamiques comme Ruby ou PHP ne font pas vraiment cela, je ne suis pas sûr d'Erlang, mais je pense qu'il perdra également son état.
la source