Инструмент для проверки имени пакета и имени класса класса в файле .class

StackOverflow https://stackoverflow.com/questions/3923799

  •  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. Анкет Должен дать вам информацию, которую вы хотите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top