Sorulması gereken ilk soru "Java sürümü makinede destekleniyor mu?" JRE'yi güncellemek bir şey olsa da, temel işletim sisteminin Java'nın yeni sürümünü çalıştırması desteklenmiyor olabilir (desteklenen sertifikalar ve destek sözleşmeleri ve birçok kurumsal ortamın sahip olmak istediği gibi).
Birçok java üretim ortamı aslında bir uygulama sunucusunun üstünde çalışır . Bir sonraki değerlendirme bu olacaktır. Java EE Uygulama Sunucularının Wikipedia karşılaştırması, Java EE'nin hangi sürümünün desteklendiğini gösterir. Bu, Oracle'ın JavaEE uyumluluğu genel bakışında daha da görülebilir . JBoss Enterprise Application Platform 6 için test edilen yapılandırma , Java SE 6.0 6u30 güncellemesine karşıdır. Java SE 6.0 güncellemesi 6u30, JBoss Application Server 7.1.0 Final için de test edilmiş yapılandırmadır . Bunlar Java 7'de çalışabilir, ancak test edilmiş yapılandırmalar değildir.
Uygulama sunucusunda genişleyen, hata ayıklamak için kullanılan canlı kod analiz araçları vardır. Her şeyi bilen Hata Ayıklayıcı (ayrıca bakınız) ve Dynatrace bunun iki örneğidir. Bu uygulamalar, ona rapor vermek için çalışan java'nın canlı bayt kodunu göstererek (değiştirerek) çalışır. Bu uygulamalar bayt kodunu değiştirerek çalıştığından, bayt kodu çalışamayacakları şekilde değişirse (yeni bir JRE gibi), çalışmazlar.
Sıradaki çerçeveler . Bunun bir örneği, Java ve onu kullanan Spring ile gelen JAXB'dir. Java 7'ye geçmek, bazı çerçevelerle uyumsuz kod üreten JAXB'yi güncelledi (bu da onların güncellenmesini ve bağımlılıklarının güncellenmesini gerektiriyordu ...).
Derleme araçları listede bir sonraki sıradadır. Oluşturma ortamının doğru Java sürümünü kullandığından emin olmak gerekir. Java 7 için kod yazmak, ancak Maven veya Ant'in kullandığı sürümü güncellememek sorunlara neden olur. Oluşturma araçlarının belirli eklentilere sahip bir sürüme güçlü bir şekilde bağlandığı zamanlar vardır.
Test araçları . PMD, findbugs ve checkstyle gibi şeyler, Java'nın yeni bir sürümünde yeni yapıları tanımayabilir - bunlar string switch deyimleri veya bileşik yakalamalarla çok karışabilir. Kod kapsamı gibi enstrümantasyona giren araçlar yeni JVM'de çalışmayabilir. Java 7 bağlamında, Cobertura ve Emma yeni JRE'ye güncellenmemiştir (yine, bu uygulamalar hangi kodun çalışıp çalışmadığını görmek için bayt kodunu değiştirir) ( jdk7 için açık kaynak kodu kapsam kitaplıklarına bakın ). Bu, birinden diğerine geçmek için derleme komut dosyalarında bir değişiklik yapılmasını gerektirebilir.
Sonra IDE var . Birinin IDE'yi dildeki yeni yapıların farkında olan bir sürüme güncellemesi gerekir. Eclipse'nin Java 7'yi desteklediğini duyurması bu sorunları gösteriyor.
Son ve kesinlikle en az değil geliştirici . Yeni kodu yazmak ve kodun nasıl yeniden yapılandırılabileceğini bilmek geliştiriciye bağlıdır. Java 1.4'ten 1.5'e kadar, şablonlar ve ek açıklamalar tanıtıldı ve geliştiricilerin mevcut yeni yapıların zihniyetine girmesi zaman aldı. Aynı şekilde koleksiyonlar 1.2'de tekrar çalışır ve geliştiricileri HashTable ve Vector kullanmaktan uzaklaştırır. Sürümün güncellenmesine, yeni dil yapılarında bir miktar eğitim eşlik etmelidir.