2012-05-09 19 views
7

Geçenlerde helios yükseltilmiş ve ben bir sınıf (örn Cat myCat = new Cat();) için yapıcı içine adım her zaman gider, tutulma ayıklayıcı, tutulma ayıklayıcı artık yerel kod

java stack trace entering instantiation olarak yığını gösterir:

Asıl kurucu koduna ulaşmak için, birkaç kez dışarı çıkmak zorundayım ki bu sinir bozucu. Bu her sınıfta oluyor ve yığına rağmen konsolda hiç hata mesajı göremiyorum. Bunu nasıl çözerim, böylece sınıfım için kurucuya doğrudan adım atar?

Bu yalnızca sınıfın ilk kez kullanıldığı ve hatta geçerli olanla aynı src dosyasında bulunan sınıflar için gerçekleşir.

+0

sınıf mevcut mu? ClassNotFoundException atılıyor gibi görünüyor ... – pstanton

+1

Sınıf kesinlikle var, hata ayıklayıcı sonunda constructer'a girer ve program başarıyla çalışır. – cplusplus

cevap

13

Eclipse Java ayıklayıcı tercihlerinde bir adım filtresi tercihinizi sahiptir. Varsayılan tercihi, java.lang.ClassLoader filtresini temizledi, ancak bu çalışmadı. Bu, yakın zamanda jre7'yi kullanmaya başladık ve değiştirdiler. Sorunumu çözmek için java.lang paketindeki herhangi bir koddan adım atmak için bir filtre ekledim.

enter image description here

0

Eclipse'de bildirilen yığın izinden, bir ClassNotFoundException başlatılmış ve atılıyor gibi görünüyor, yazdığınız uygulama herhangi bir soruna neden oldu mu?

Sınıfın kurucusunda kesme noktaları belirlediniz mi? Kurucuya hiç adım atmadın mı?

Sınıfı JRE'ye tanıtmak için Class.forname() kullanıyor muydunuz?

+0

Hiç sorun değil ve yapıcıya adım atabiliyordum. – cplusplus

+0

Sınıfı ithal etmek için özel bir şey yok. – cplusplus

5

Sanırım ClassNotFoundException, sınıf yüklemesinin bir parçası olarak gerçekleşiyor - sorun, bu istisnalar atıldığında tetiklenecek bir kesme noktası ayarlamanızdır. Benim tahminim, Eclipse sürümünüzün varsayılan olarak bu sınırda kalmasıdır, oysa eskisi gibi değildir.

Benzer bir sorun bildiren ve yalnızca bu kesme noktasını devre dışı bırakacak olan çözümü sağlayan this link'a bakın.

(öğretim faiz balık ve bütün bunlara olarak, google arama terimi "ayıklayıcı başlatıcısı $ appclassloader eclipse" oldu.)

+0

Bu gerçekten problemdir ve henüz yüklenmemiş bir sınıfa bir yöntemin ilk çağrısı sırasında ortaya çıkar. Sadece F7'e (geri dönüş), sınıfınıza geri dönmek için gereken süreyi vurun - genellikle sınıfıma geri dönmek için 8 tane F7 tuşuna basıyorum. –

+0

Btw, merak uyandırmadan önce kurucunun içine girmeden önce bunu yükleyebilirsiniz. Örneğin, debugger 'Class.forName (Cat.class.getName())' da değerlendirdiyseniz? – yshavit

+0

Yüklenen sınıfı alan her şey bu sorunu atlayacak. –

İlgili konular