Когда вы используете Class.forName (className), он разрешает класс.Вы также можете использовать ClassLoader.loadClass (classname) для конкретного загрузчика классов.
Единственный способ загрузить класс в загрузчик классов - это иметь байт-код для этого класса.Это работает, только если класс с таким именем не был загружен ранее.Вы можете заставить загрузчик классов загрузить класс из байтового кода, вызвав ClassLoader.defineClass () с помощью отражения.
Вы можете получить байт-код из загрузчика классов
byte[] bytes = IOUtils.toByteArray(
myClass.getClassLoader().getResourceAsInputStream(
myClass.getName().replace('.','/')+".class"));
Примечание:чтобы загрузить класс, все его зависимости должны быть загружены первыми.Это легко, если доступны все зависимости, но усложняется, если вам нужно извлечь больше классов.