Я пытаюсь написать декомпилятор для Java, используя отражение (все, что мне нужно, это информация о сигнатуре метода из переданного в jar-файл).Я использую URLClassLoader
для загрузки классов из файла jar, а затем передаю этот класс своему декомпилятору.
Однако я столкнулся с проблемой.В банке, которую я пытаюсь прочитать, содержатся разные версии классов, уже загруженных в мою среду.Поэтому, когда я вызываю
ClassLoader myClassLoader = URLClassLoader.newInstance(jars, null);
Class<?> classToDecompile = Class.forName(className, false, myClassLoader);
, возвращается не класс из моего файла JAR, а тот, который уже был загружен.Есть ли способ загрузить информацию о классе только для отражения и получить ее из переданного фляги, а не из JRE?
Редактировать:
Фляга I 'm пытается декомпилировать содержит классы в пакете java.lang, который вызывает исключение безопасности:
java.lang.SecurityException: Запрещенное имя пакета: java.lang