У меня есть часть кода, в которой я пытаюсь загрузить класс во время выполнения. Код не все самозаписывается, поэтому у меня есть некоторые проблемы с пониманием ошибки, которая всегда появляется после компиляции.
Здесь код:
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.
Ошибка stacktrace:
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 поврежден? Что означает ошибка?
Я надеюсь, что кто-нибудь может помочь мне с моей проблемой, потому что поиск в Интернете действительно не помог в этом случае.