Инструмент для проверки имени пакета и имени класса класса в файле .class
-
29-09-2019 - |
Вопрос
Есть ли какой -нибудь инструмент или техника, чтобы позволить мне запросить содержимое файла Java .class? Я хочу знать полностью квалифицированное имя класса и какой метод он определяет. Я думал, что, возможно, javap
мог бы помочь мне с этим, но я не могу понять, как.
Решение
Является ли класс, содержащийся в файле .class, всегда такой же, как и имя файла (исключая .class)
На практике да. Каждая реализация Java, с которой я сталкиваюсь, полагается на имена файлов класса, чтобы найти классы для загрузки и т. Д.
Теоретически, класс -загрузчик мог Используйте какой -то другой механизм и, следовательно, мог Храните классы в файлах, которые не имеют отношения к именам классов. Тем не менее, я не вижу преимущества в этом.
Даже если я использую какой -то другой язык, такой как Groovy, Jython или Scala?
Учитывая, что эти языки компилируются в файлы bytecode, которые затем загружаются стандартными загрузчиками классов, то в значительной степени задано, что имена классов в файлах Bytecode соответствуют именам файлов ... в противном случае загрузчики класса не смогут Найдите файлы класса. Однако это не обязательно означает, что имена классов в файлах Bytecode идентичны Scala / Jython / Groovy идентификаторам, используемым в исходном коде. Действительно, это даже не верно для Java; Например, имена классных файлов для анонимных и внутренних классов для не то же самое, что идентификаторы в исходном коде Java.
Другие советы
Вызов javap ClassName
(нет javap ClassName.class
).
Если ваш .class
просто javap ClassName
Если ваш .class
находится в подпапке javap path/to/ClassName
или javap path.to.ClassName
Ресурсы :
Попробуй это Java Decrosciler. Анкет Должен дать вам информацию, которую вы хотите.