Seit den Anfängen meines College-Lebens benutze ich Java und das größte Problem ist, dass wir absolut weniger produktiv sind als andere interpretierte Sprachen. Alle Leute sind sich sicher, dass Java eine der am besten kompilierten Sprachen ist.
Weder Sun noch Oracle haben jedoch genügend Anstrengungen unternommen, um dieses Problem zu lösen. Eines der Probleme ist natürlich das Nachladen von Klassen.
Neueste Versuche der Community, dieses Problem zu lösen, sind das DaVinci Hotswap-Projekt , JRebel , PlayFramework . Zum Zeitpunkt des Schreibens waren sie jedoch noch nicht ausgereift (imo) und einheimisch. Einige von ihnen sind nicht betriebsbereit, einige sind nicht mit allen IDEs kompatibel, einige sind unausgereifte Hochschulprojekte. Die Roadmap und sogar Java für Entwickler ist bereit, aber die Java-Community hat noch keine Lösung für das Neuladen von On-the-Fly-Klassen.
Ist es für Oracle so schwierig, Anstrengungen zu unternehmen, um dieses Problem zu lösen? Warum wurde Class Reloading noch nicht nativ implementiert?
Antworten:
Was ist mit JEE / J2EE? Dies wurde erstmals vor 12 Jahren veröffentlicht. Dies wird direkt von Sun / Oracle und vielen anderen Anbietern unterstützt.
Was ist mit und OSGi? Seine erste Veröffentlichung war vor fast 11 Jahren. Eclipse (eine IDE) ist darauf aufgebaut, Glassfish von Sun / Oracle und Apache Felix verwenden es ausgiebig. Sie können es mit Spring-OSGi verwenden.
Es wurde in Java SE von Haus aus nicht unterstützt, da Unternehmensanwendungen absichtlich von Anwendungsservern als separate Produkte unterstützt wurden.
quelle
Versuchen Sie dies: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
Es gibt mehrere komplexe Probleme. Mir sind derzeit keine Lösungen bekannt (für Java oder nicht), die strukturelle Änderungen an Stateful Entities vornehmen. Dynamische Sprachen wie Ruby oder PHP machen das nicht wirklich, ich bin mir nicht sicher, aber ich denke, es wird auch den Status verlieren.
quelle