Я пытался импортировать .class по абсолютному пути во время выполнения кода, и я не знаю, как это сделать.
Я нашел способ импортировать класс, когда он уже находится в проектепуть сборки Class.forName();
, но мне нужно найти способ загрузить класс, который не находится в пути сборки.
Цель:
- Пользователь может загрузить свой собственный.class файл, который затем сохраняется локально в определенной папке, а путь сохраняется в базе данных
- . Через GUI пользователь может выбрать этот файл для использования во время выполнения кода
- Мой код должен загрузить классчерез этот заданный абсолютный путь во время выполнения кода
Проблема в 3-м пункте, потому что я не знаю, возможно ли загрузить класс во время выполнения кода.
IЯ пытался использовать URLClassLoader
, но я получаю сообщение об ошибке ClassNotFound.
РЕДАКТИРОВАТЬ:
В основном, у меня есть эта статическая функция, которая должна возвращать Class по его имени,но urlClassLoader.loadClass () выдает ошибку.
Имяфайл - это J48.class, поэтому для аргумента className я попытался использовать «J48», «J48.class», но ни один из них не работает.
Дополнительно я попытался установить классификаторы папок для построения пути и задать аргумент "weka.classifiers.trees.J48", который является полным путем с пакетом к этому классу (структура пакета - weka.classifiers.trees).
`public static Class getClassByName(String className) throws MalformedURLException, ClassNotFoundException
{
URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[] {
new URL("file:///D:\\xampp\\htdocs\\prog-ing\\classifiers\\")
});
Class class = urlClassLoader.loadClass(className);
return class;
}`