Bir Java uygulamasının yapısını tarayacak ve bazı anlamlı bilgiler sağlayacak bir Java aracı oluşturmaya çalışıyorum. Bunu yapmak için, tüm .class dosyalarını proje konumundan (JAR/WAR veya sadece bir klasör) tarayabilmem ve yöntemlerini okumak için yansımayı kullanabilmem gerekir. Bu imkansız olduğu kanıtlıyor.Sınıflar çalışma zamanında bir klasörden veya JAR'den nasıl yüklenir?
URLClassloader temelli bir dizini/dizinden belirli sınıfları yüklememe izin veren birçok çözüm bulabilirim, ancak sınıf adı veya paket yapısı hakkında bilgi sahibi olmadan sınıfları yüklememe izin vermez.
DÜZENLEMEK: Sanırım bunu kötü derken. Sorunum, tüm sınıf dosyalarını alamıyorum, yineleme vb. Ile bunu yapabilirim ve bunları düzgün bir şekilde bulabilirim. Sorunum, her sınıf dosyası için bir Sınıf nesnesi ediniyor.
Tam olarak nitelenmiş adını göz ardı ederek bir sınıfı nasıl yüklersiniz? Bunun mümkün olduğunu düşünmüyorum. –
Aşağıdaki cevaplar sınıf dosyalarını bulmanızı sağlar, ancak projenizin büyüklüğüne bağlı olarak, [asm] (http://asm.ow2.org/) veya [javassist] (http: //) kullanmaya değer olabilir. www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/). Bunlar, hepsini belleğe yüklemeden sınıfları analiz etmenize izin verecektir. –