从.zip文件加载类时发生java.lang.LinkageError
我正在尝试制作一个类加载器,它将在.zip文件中加载.class文件。我遵循了本教程(),但当我运行程序时,出现以下错误:从.zip文件加载类时发生java.lang.LinkageError,java,Java,我正在尝试制作一个类加载器,它将在.zip文件中加载.class文件。我遵循了本教程(),但当我运行程序时,出现以下错误: java.lang.LinkageError: loader (instance of org/freeforums/geforce/genforcer/main/ZipClassLoader): attempted duplicate class definition for name: "test/TestClass" 错误来自第30行,即: return defin
java.lang.LinkageError: loader (instance of org/freeforums/geforce/genforcer/main/ZipClassLoader): attempted duplicate class definition for name: "test/TestClass"
错误来自第30行,即:
return defineClass(filename, out.toByteArray, 0, out.size());
我使用以下方法调用该方法:
zipClassLoaderObj.findClass("test.TestClass");
有人知道我做错了什么吗?发现了问题。我调用该方法两次,因为它与一堆其他代码处于“for”循环中。刚把它从循环中取出来,现在它工作得很好。我不知道为什么我自己不能弄明白。谢谢你的帮助 那个类已经在类路径上了吗?对不起,我对使用类加载器和其他半高级特性是全新的。你能解释一下这是什么意思吗?我所问的与类加载器或其他很多东西无关。我在问,当你运行程序时,类是否已经在类路径上,加载了,等等。哦,是的,已经加载了。我在主帖子中添加了错误产生的那一行;然而,后一个类在编译前一个类之后发生了不兼容的变化。虽然这是一个“垃圾”错误。我怀疑在本例中您得到了它,因为您已经加载了一个版本的test/TestClass。