there,我使用类加载器从其他目录中识别类

File dir=new File ("D:\\dirclass")
fulldir = new File (dir+"\\myclass");
filename = new StringTokenizer(fulldir.getName(), ".").nextToken();
URL[] checkclass =
{
    dir.toURI().toURL()
};
URLClassLoader urlcl = new URLClassLoader(checkclass);
Class cls = urlcl.loadClass(filename);


如果没有包的类,这是可行的。

但是,如果使用带包的类,则无法运行。

Exception in thread "main" java.lang.NoClassDefFoundError: packclass (wrongname: dirclass\packclass)


还有其他办法吗?

最佳答案

您必须为ClassLoader指定类的完全限定名称,例如:

Class cls = urlcl.loadClass("com.mypackage.MyClass");

10-07 23:44