Desde os primeiros dias da minha vida universitária, uso Java e o maior problema que temos é absolutamente menos produtivo do que outras linguagens interpretadas. Todas as pessoas têm certeza de que o java é uma das melhores linguagens compiladas.
No entanto, nem a Sun nem a Oracle se esforçaram o suficiente para resolver esse problema. Um dos problemas é, obviamente, o recarregamento de classes.
As últimas tentativas da comunidade para resolver este problema são o projeto DaVinci Hotswap , JRebel , PlayFramework . No entanto, no momento da redação deste texto, eles ainda não eram maduros (imo) e nativos. Alguns deles não estão prontos para a empresa, outros não são compatíveis com todos os IDEs, alguns deles são projetos universais imaturos. O roteiro e até o Java pronto para o desenvolvedor estão prontos, mas a comunidade Java ainda não possui uma solução para o recarregamento imediato da classe.
É tão difícil para a Oracle envidar esforços para resolver esse problema? Por que o recarregamento de classe ainda não foi implementado nativamente?
Respostas:
E o JEE / J2EE? Este foi lançado pela primeira vez há 12 anos. Isso é suportado diretamente pela Sun / Oracle e por muitos outros fornecedores.
Que tal e OSGi? Seu primeiro lançamento foi há quase 11 anos. O Eclipse (um IDE) é construído sobre ele, o Glassfish da Sun / Oracle e o Apache Felix o usam extensivamente. Você pode usá-lo com o Spring-OSGi.
Ele não é suportado nativamente no Java SE porque os aplicativos corporativos foram deliberadamente suportados pelos servidores de aplicativos como produtos separados.
fonte
Tente isto: http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
Existem vários problemas complexos envolvidos. Na verdade, não estou ciente de nenhuma solução disponível (para Java ou não) que faça alterações estruturais em entidades com estado. Linguagens dinâmicas como Ruby ou PHP realmente não fazem isso, não tenho certeza sobre Erlang, mas acho que também perderá o estado.
fonte