Я работаю над приложением, которое должно уметь анализировать код Java; некоторые через текст, а некоторые через размышление. Пользователь должен иметь возможность ввести каталог, и программа извлечет из него все файлы .java и .class. У меня нет проблем с файлами .java, но когда я пытаюсь получить класс файла .class, он не работает.
Я смотрел на использование ClassLoader с URL. То, что я смог найти до сих пор, дало мне это
URL url = this.openFile().toURI().toURL();
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass(this.path);
return cls;
path
- это просто строка, содержащая фактический путь к рассматриваемому файлу .class, например, Users/me/Documents/Application/out/production/MyPackage/MyClass.class
. Из того, что я понимаю из своего собственного чтения, этот метод связывает меня со знанием структуры пакета ввода, но в целом я не знаю. Все, что у меня есть, это абсолютный путь к файлу .class. Есть ли способ, просто используя этот путь (или какое-то простое его преобразование), чтобы я мог загрузить в свою программу фактический объект класса MyClass и начать отражать его?