我尝试在一个简单的程序中动态加载类,并且有趣的是,当我尝试使用简单名称动态加载类时,它会因classnotfoundexception而失败。只有当类在默认包以外的包下时才会发生这种情况。
但是当我指定完整路径名时,动态加载成功。正在加载的类与Main类位于同一个包中。
File Main.java:
public class Main {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
System.out.println(Class.forName("m"));
}
}
class m extends Main{
}
答案 0 :(得分:3)
答案 1 :(得分:0)
您必须为此类
添加完全限定的类名,例如System.out.println(Class.forName("com.sample.M"));
假设
com.sample是您的类包名称。