SORU
22 EYLÜL 2009, Salı


NoClassDefFoundError ve ClassNotFoundException arasındaki fark nedir?

Belirtilen hata ve İstisna arasındaki farkı bilmek istiyorum.

Bunların her biri ve bu tür hatalar ile başa çıkmak için nasıl herhangi bir düşünce süreci alıyorum sebebi nedir?

Bir proje üzerinde çalışırken. Eğer yeni jar dosyasını dahil etmek için mevcut kodunu değiştirmek istiyorsak, bu durumlar karşısında. Bazen bir java uygulaması webstart uygulamalarında dağıtılmış istemci tarafı veya sunucu tarafı gelecekler.

Olası nedenler rastlamak var:

  1. kod istemci tarafı için build.xml paketleri dahil değildir
  2. çalışma zamanı sınıf kullanıyoruz yeni kavanoz için eksik
  3. önceki kavanoz ile sürüm çakışması

Ama şu an itibariyle isabet ve deneme yöntemi ile işlerin için uğraşıyorum.

Daha fazla açıklık ve anlayış bu konuda ihtiyacım var.

CEVAP
22 EYLÜL 2009, Salı


Java dan farkı Özellikleri aşağıdaki gibidir API.

ClassNotFoundException:

Bir uygulama çalıştığında atılır yük dize ile sınıf adını kullanarak:

  • Sınıf forName yöntem Class.
  • Sınıf findSystemClass yöntemi ClassLoader.
  • Sınıf loadClass yöntemi ClassLoader.

ama hiçbir tanım sınıfı ile belirtilen isim bulunamadı.

NoClassDefFoundError:

Eğer Java Sanal Makinesi veya atılan ** 8 örneği yüklemeye çalışır bir sınıf tanımı (bölüm olarak bir parçası olarak normal bir yöntem çağrısı veya yeni bir örnek yeni oluşturma ifade ve tanım yoktu. sınıf bulunamadı.

-Aradı sınıfı tanımı şu anda yürütülen zaman var sınıf, ama tanımı derlendi artık bulunabilir.

Yani, NoClassDefFoundError kaynak başarıyla derlendi oluşuyor gibi görünüyor, ama zamanında, class gerekli dosyalar bulunamadı. Bu class gerekli tüm dosyaları alındı JAR dosyaları, dağıtımı ve üretimi ile ilgili olabilecek bir şeyler olabilir.

ClassNotFoundException, zamanında derslere yansıtıcı aramalar yapmaya çalışıyorum kaynaklanıyor olabilir gibi görünüyor, ama program aramaya çalışıyor sınıfları yok.

İkisi arasındaki fark Error Exception Bir bir. Error ve Java Sanal Makinesi sorunları bulmak için bu beklenen bir sınıf bulmakta güçlük doğar NoClassDefFoundError ile. Derleme çalışmaları için beklenen bir program class dosyalar nedeniyle bulunamadı koşamaz veya derleme zamanı sırasında üretilen karşılaştı aynı değildir. Bu programı JVM tarafından başlatılan olarak çok kritik bir hata.

Diğer taraftan, ClassNotFoundException bir miktar beklenir yani Exception, ve geri kazanılabilir bir şeydir. Yansıma kullanarak hata eğilimli olabilir (işler beklendiği gibi gitmeyebilir bazı beklentileri var. Gerekli tüm sınıfları var olduğunu görmek derleme zamanı kontrol yok, istediğiniz sınıfları bulma ile herhangi bir sorun çalışma zamanında görünür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Peyton

    Peyton

    28 Aralık 2008
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008