我有一段代码,我尝试在运行时加载一个类。代码并非全部是自己编写的,所以我在理解编译后总是出现的错误时遇到了一些问题。
这里的代码:
private Class findClass(String s)
throws ClassNotFoundException
{
URL url = getResource("AP.class");
if(url == null)
{
throw new ClassNotFoundException(s);
}
inputstream = null;
Class classToRead;
try
{
inputstream = url.openStream();
byte abyte0[] = readClass(inputstream);
classToRead= defineClass(s, abyte0, 0, abyte0.length);
}
catch(IOException ioexception)
{
throw new ClassNotFoundException(s);
}
if(inputstream != null)
{
try
{
inputstream.close();
}
catch(Exception exception1) { }
}
return classToRead;
}
错误出现在 defineClass 方法中。
错误堆栈跟踪:
Exception in thread "main" java.lang.ClassFormatError: Unknown constant tag 63 in class file AP
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at c.findClass(c.java:100)
at c.loadClass(c.java:56)
at java.lang.ClassLoader.loadClass(Unknown Source)
at c.a(c.java:20)
at mainOpenClass.main(lol.java:13)
我现在的问题是:代码可能有什么问题吗?AP.class 是否有可能损坏?错误的真正含义是什么?
我希望任何人都可以帮助我解决我的问题,因为在这种情况下搜索互联网并没有真正的帮助。