2012-11-10 46 views
2

說我有以下兩類:的Class.forName()和ClassNotFoundException的

public class MyClass { 
    public String getDescription() { 
     return "MyClass"; 
    } 
} 

public class MyClassLoader { 
    public static void main (String[] argv) throws ClassNotFoundException { 
     Class.forName("MyClass"); 
     System.out.println("MyClass class was successfully loaded"); 
    } 
} 

如果這兩個類都在默認包,它運行良好,該類負載,世界是美麗的。 (如果我要刪除類MyClass,我會得到一個ClassNotFoundException,符合市場預期。

但是,如果他們都在一個包(假設它是在Eclipse包),並有

package myClassTestPackage; 

在這兩個聲明,我得到一個ClassNotFoundException當我嘗試運行它。

是什麼原因導致這個問題,我該如何解決呢?這是我能夠重現我在很多經歷一個錯誤的最簡單方法較大的程序

回答

6

這是因爲Class.forName() method將完全限定的類名稱作爲參數。

Parameters: 
    className - the fully qualified name of the desired class. 

所以:

Class.forName("myClassTestPackage.MyClass"); 
+0

我那種認爲這將是類似的東西。謝謝。我很感激。 – SirYancy

相關問題