2012-11-10 122 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

相关问题