2012-09-27 12 views
7

veriyor Ve şuClass.forName Aşağıdaki kodu ::</p> <pre><code>String className = "SmsHelper" Class c = Class.forName(className); </code></pre> <p>kullanıyorum ClassNotFound İstisna

stackTrace ::

inside main java.lang.ClassNotFoundException: SmsURLHelper 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at com.tcs.sms.actions.SmsUtil.invoke(SmsUtil.java:131) 

Not alıyorum: SmsHelper sınıfını mevcut.

Lütfen herhangi bir şeyi özlediysem öner.

+1

Sınıfın gerçek, tam adı nedir? SmsHelper', SmsURLHelper' veya 'com.foo.bar.SmsURLHelper'? –

cevap

15

Tam nitelikli adı kullanın.

Örnek:

Class.forName("com.yourownpackage.SmsHelper"); 
+0

Cevabınız için teşekkürler ... –

+0

Rica ederim. – Mik378

4

forName yönteminde bir dize olarak, paket adına (ki sınıf bulunduğu) ile birlikte Sınıf adını yazınız. İşte örnek kullanmaktır:

String className = "com.testpackage.SmsHelper"; 
Class c = Class.forName(className); 
3
  1. class.forName() tam nitelikli sınıf adını bekler - gibi com.tcs.foo.bar.SmsURLHelper.

  2. Neden sadece SmsHelper.class yazmayın - bu derleme zamanında kontrol edilir, class.forName() için uygun bir çağrıyla derlenir.

İlgili konular