대학 시절의 초기부터 저는 Java를 사용하고 있으며 가장 큰 문제는 다른 해석 언어보다 생산성이 떨어지는 것입니다. 모든 사람들은 java가 최고의 컴파일 언어 중 하나라고 확신합니다.
그러나 Sun과 Oracle은이 문제를 해결하기 위해 충분한 노력을 기울이지 않았습니다. 물론 문제 중 하나는 클래스를 다시로드하는 것입니다.
이 문제를 해결하기위한 커뮤니티의 최신 시도는 DaVinci Hotswap 프로젝트 , JRebel , PlayFramework 입니다. 그러나이 글을 쓰는 시점에서 그들은 여전히 성숙하지 않았고 (imo) 원주민이었습니다. 그들 중 일부는 기업용이 아니며 일부는 모든 IDE와 호환되지 않으며 일부는 미성숙 한 대학 프로젝트입니다. 로드맵과 개발자가 준비한 Java도 준비가되었지만 Java 커뮤니티에는 여전히 클래스를 새로 고칠 수있는 솔루션이 없습니다.
오라클이이 문제를 해결하기 위해 노력하는 것이 너무 어렵습니까? 클래스 재로드가 아직 기본적으로 구현되지 않은 이유는 무엇입니까?
답변
JEE / J2EE는 어떻습니까? 이것은 12 년 전에 처음 발표되었습니다. 이것은 Sun / Oracle 및 기타 여러 공급 업체에서 직접 지원됩니다.
OSGi는 어떻습니까? 첫 번째 릴리스는 거의 11 년 전에 이루어졌습니다. Eclipse (IDE)가 내장되어 있으며 Sun / Oracle의 Glassfish와 Apache Felix가 광범위하게 사용합니다. Spring-OSGi와 함께 사용할 수 있습니다.
엔터프라이즈 애플리케이션은 애플리케이션 서버에서 별도의 제품으로 의도적으로 지원 되었기 때문에 Java SE에서 기본적으로 지원되지 않았습니다.
답변
이것을 시도하십시오 :
http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/
여러 가지 복잡한 문제가 있습니다. 실제로 상태 저장 엔터티에 대한 구조적 변경을 수행하는 솔루션은 Java 용인지 아닌지 알 수 없습니다. Ruby 또는 PHP와 같은 동적 언어는 실제로 그렇게하지 않습니다. Erlang에 대해서는 확실하지 않지만 상태가 손실 될 것이라고 생각합니다.