我有一个文件夹,里面有我要加载的类。
我的URLClassLoader
似乎对其他所有课程都很好,但有时因某种原因行为不端,这让我感到疯狂。该文件夹中列出的所有类基本上都是空的(没有构造函数,字段,方法)并且属于它们自己的包。
package death;
public class Death{
}
package death;
public class Awesome{
}
package abc.dfg.hijk;
public class Test {
}
package mesa;
public class ZZ{
}
我有一个机制可以提取一个类所属的包,并在控制台上打印出来。
这是我用来加载每个类的代码
String fileName = file.getName();
if (fileName.contains(".class")) {
URL[] urls = new URL[]{ classesFolder.toURI().toURL() };
URLClassLoader loader = URLClassLoader.newInstance(urls);
String packageName = getPackage(file);
//substring -6 because of .class
Class clazz = loader.loadClass(packageName + fileName.substring(0, fileName.length() - 6));
loader.close();
}
System.out.println("Done loading " + file.getName());
System.out.println("");
我不确定这里发生了什么,虽然我觉得我肯定错过了一些东西,因为所有其他类似乎加载得很好。 packageName
的值对于所有已加载的类都是正确的。我知道我做错了什么?