Как выгрузить содержимое библиотеки Java на консоль? - PullRequest
4 голосов
/ 24 августа 2011

Существует ли инструмент для выгрузки содержимого библиотеки или файла JAR в консоль?

Я ищу Java-аналог DUMPBIN /SYMBOLS, который работает в библиотеках Windows в основном режиме. В C # и остальной части .NET есть множество визуальных инструментов, таких как .NET Reflector и браузеры объектов, встроенные в Visual Studio. В целом, я предпочитаю инструменты командной строки, но я буду благодарен за все, что работает:)

(Я только начинаю с Java и Scala на Windows.)

Ответы [ 5 ]

11 голосов
/ 24 августа 2011

Команда, которую вы ищете:

jar tf <jarfilename>

6 голосов
/ 24 августа 2011

Вы можете распаковать файл JAR (jar xf my.jar), чтобы увидеть его содержимое; если вы хотите сделать это в своем коде, в java.util.jar есть инструменты для работы с файлами JAR.

В качестве альтернативы, если вы знаете часть иерархии пакетов, вы можете ввести ее часть в Scala REPL и нажать вкладку, чтобы получить список допустимых дополнений. Например:

scala> java.util.jar.   <-- hit tab here
Attributes              JarEntry                JarException            
JarFile                 JarInputStream          JarOutputStream         
JarVerifier             JavaUtilJarAccessImpl   Manifest                
Pack200                 

Тем не менее, очень трудно понять, как использовать вещи без документации API. Ваш первый шаг почти всегда должен состоять в том, чтобы попытаться найти документацию и посмотреть на нее.

3 голосов
/ 24 августа 2011

Если вы знаете название класса:

$ javap -classpath jarfile some.package.in.that.jarfile.ClassName

Также вы можете "script-ize" сделать так, чтобы он перебирал все классы в файле jar и запускал javap для каждого из них

1 голос
/ 24 августа 2011

Также обратите внимание, что JAR-файл - это просто заархивированный файл, поэтому подойдет любая утилита ZIP .И большинство IDE предлагают исследовать внутри библиотек JAR, которые вы добавляете в проект (например, Eclipse ).

0 голосов
/ 24 августа 2011

Как уже упоминалось, файлы JAR являются файлами ZIP и могут быть извлечены таким же образом.

Для просмотра классов внутри файла JAR я рекомендую использовать IDE.Добавьте файл JAR в качестве зависимости библиотеки к своему проекту, и тогда вы сможете просматривать классы и методы.

Как насчет получения исходного кода для файла JAR (если это возможно)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...