У меня есть файл класса, из которого я читаю байты и определяю в объект Class с помощью рефлексивного вызова ClassLoader.defineClass.
Получаемое сообщение NoClassDefFoundError:
Caused by: java.lang.NoClassDefFoundError: com/foo/sub/Foo (wrong name: com.foo.sub.Foo)
Файл класса был скомпилирован с пакетом "com.foo.sub", поэтому полное имя класса будет "com.foo.sub.Foo"
Вызов defineClass:
byte[] fileBytes;
//... read file
Method defineClass;
//... initialize and prepare Method for reflective call
Class clazz = defineClass.invoke("com.foo.sub.Foo", fileBytes, 0, fileBytes.length);
Состояние javadocs (относительно параметра name defineClass ): " name - ожидаемое имя класса или ноль, если нетизвестно, используя «.»и не '/' как разделитель и без завершающего суффикса .class."
Я не понимаю, почему генерируется исключение и что должно указывать сообщение.Любая помощь приветствуется.