У вас проблемы с вашим classpath.Полагаю, это происходит, поскольку вы не определяете родительский загрузчик классов - содержит ли «url» все необходимые классы, включая системные классы?
Вы получаете исключение, когда класс фактически разрешен, поэтому классыкоторые появляются в загруженном классе, также загружаются.Если вы измените clazzLoader.loadClass(name)
на clazzLoader.loadClass(name, true)
, вы получите исключение в строке loadClass.
Попробуйте выполнить следующее:
URL url = new File(ACTIONS_PATH).toURI().toURL();
URLClassLoader clazzLoader = new URLClassLoader(new URL[]{url}, getClass().getClassLoader());
Class<RatingAction> clazz = (Class<RatingAction>) clazzLoader.loadClass(name);
return clazz.newInstance();