ClassNotFoundException

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

是什么导致此问题,如何解决?这是我能够重现在更大程序中遇到的错误的最简单方法。

最佳答案

这是因为Class.forName() method将完全限定的类名作为参数。

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


所以:

Class.forName("myClassTestPackage.MyClass");

关于java - Class.forName()和ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13326890/

10-09 14:31