Подтвердить что ты не робот

Просмотр содержимого файла .jar

Каким будет самый простой способ просмотра классов, методов, свойств и т.д. внутри файла jar? Я ищу что-то, что эквивалентно очень полезному Lutz Roeder.NET Reflector - для Java

4b9b3361

Ответ 1

Используя JDK, jar -tf будет перечислять файлы в банке. javap предоставит вам более подробную информацию из определенного файла класса.

Ответ 2

Обычно я открываю их с помощью 7-Zip... Он позволяет, по крайней мере, видеть пакеты, классы и ресурсы.
Должен ли я видеть методы или поля, я бы использовал Jad, но, конечно, лучше полагаться на (хороший) JavaDoc...

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

[EDIT] Ссылка на поток SO. Не то, что задано, но каким-то образом связано, таким образом, полезно: Java: Как узнать, какой файл jar использовать с именем класса?

Ответ 3

Я лично использую JD-GUI. Это бесплатный "декомпилятор", поскольку он позволяет вам видеть исходный код, классы и объекты в классах, а также видеть структуру файлов в древовидном меню слева. Однако это не позволяет вам напрямую изменять классы.

Сайт JD-GUI: http://jd.benow.ca/

Ответ 4

Имена методов, поля и т.д.

Добавляя банку в проект в среде IDE, вы обычно можете видеть методы и имена полей, но не подробную реализацию. NetBeans может это сделать, возможно, Eclipse, вероятно, IntelliJ и т.д. Вы можете просматривать структуру jar непосредственно в среде IDE.

Просто содержимое

Для чего угодно, например просмотра содержимого, вы можете использовать:

  • jar tvf jarfile.jar
  • winzip или любой инструмент zip

Исходный код

Чтобы получить доступ к исходному коду, вы должны использовать декомпилятор, такой как JAD или один из его интерфейсов или другой декомпилятор. Если код запутан, тогда...

Ответ 5

Расширяя ответ Тома Хотина, вы можете передать список, чтобы отфильтровать требуемый класс или файлы:

jar tf my-fat-jar-file.jar | grep filename

Это должно работать на bash/zsh и similars, или emacs 'eshell.

Дополнительная информация: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html

Ответ 6

  Если кто-то еще этого не знает, JAR файл - это просто ZIP файл. который содержит классы программы, ресурсы и т.д., а также некоторые метаданные. Вы можете извлечь один, чтобы увидеть, как он сложен.

Поэтому я использую команду unzip, которую легко запомнить и использовать.

unzip -l <jar-file-name>.jar

Например, если у вас есть файл JAR с именем test.jar, тогда unzip -l test.jar перечислит все содержимое файла JAR.

Хотя все остальные ответы хороши, но в большинстве из них вам придется использовать какое-то программное обеспечение, такое как 7 zip или JDK, или какой-либо другой инструмент для затмения, в то время как для этого не нужно иметь какое-либо из этих больших ПО и поставляется по умолчанию в Linux и Mac, поэтому он очень легкий и удобный в использовании.

Вы также можете использовать zipinfo <your jar file>. если ваша ОС поддерживает это.

Ответ 7

Использовать WinRar. Он откроет вам структуру папок неповрежденным способом. Также позволяет редактировать внутри архива, сохраняя пути.

Afterall, JAR файл является только ZIP-архивом.

Ответ 8

Если вам нравится видеть, что внутри, просто переименуйте как первый вариант ниже.

  • F2 & Rename to jarfile.zip//Используйте любую распаковку...

  • jar tvf jarfile.jar

  • jar tf jarfile.jar

Ответ 9

Если я правильно понимаю, вы хотите видеть не только классы, но также методы, свойства и т.д. Единственный инструмент, который я знаю, который может это сделать, - это Eclipse - если вы добавите jar в путь к классу проекта, вы сможете просматривать его классы с помощью методов и свойств с помощью обычного проводника пакетов.

В любом случае, это хорошая идея для хорошего автономного инструмента Java

Ответ 10

Jad является klunky и больше не поддерживается. Я переключился на "Java Decompiler" , в котором есть гладкий интерфейс и поддержка новых языковых функций.

Каждый декомпилятор, который я использовал, однако, запускается в код, который он не декомпилирует успешно. Для них это помогает понять дизассемблированный байт-код Java, созданный стандартным инструментом JDK, javap.

Ответ 11

jar -tvf file_name.jar

выше будет печатать только имена файлов.

Чтобы просмотреть содержимое файлов, вы можете извлечь файлы в папке:

jar -xvf file_name.jar

это разархивирует файл jar и поместит содержимое в тот же каталог, где вы его запускаете.

Или в Windows переименуйте файл .jar в .zip и затем вы можете разархивировать, чтобы извлечь и просмотреть содержимое файла jar. Поскольку jar является внутренним zip файлом.

Ответ 12

Ну, jar файл - это всего лишь zip файл, поэтому, если вы распакуете его (с помощью своей любимой утилиты для распаковки), вы получите все файлы внутри.

Если вы хотите просмотреть файлы классов, чтобы увидеть методы, вам понадобится инструмент для этого. Как упоминает PhiLho, Eclipse может это сделать (по умолчанию), и я думаю, что большинство Java IDE способны на это.

Ответ 13

В Eclipse 3.4 do

  • Перетащите файл jar в вопрос в проект Java. Появится копия файла jar.
  • Щелкните правой кнопкой мыши на файле jar и выберите "Путь сборки" → "Добавить в путь сборки".
  • Файл Jar перемещается в "Связанные библиотеки" node, где его можно открыть и перейти на панель "Проводник проекта".

Если просмотр исходного кода тоже является проблемой, откройте новый вопрос.

Для навигации на уровне Jar файла (в виде zip файла) я использую 7zip, который работает очень хорошо, и позволяет просматривать и редактировать записи, которые отлично подходят для устранения проблем.

Ответ 14

Если вы находитесь в окнах и используете powershell, и ищете файл в банке, вы можете сделать:

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}

Ответ 15

Один из способов сделать это - открыть перспективу в "Package explorer". Выполняя это, вы можете увидеть структуру вашей банки с деталями класса. Для этого проверьте папку библиотеки в вашем проекте с помощью проводника пакетов.

Окно → Показать вид → Другое → Java → Пакет Explorer

Другой способ: вы можете использовать JarPlug в качестве плагина eclipse. Это работает в eclipse/springsource

http://jar-plug.sourceforge.net/

Ответ 16

В наши дни вы можете открыть их с помощью большинства утилит декомпрессии, а затем просто получить что-то вроде DJ Java Decompiler, если вы хотите просмотреть источник.

Ответ 17

Bndtools предоставляет бесплатный плагин просмотра JAR для Eclipse.

Добавьте сайт Eclipse update и установите только средство просмотра.

enter image description here

Ответ 18

Я предпочитаю JAR Browser, у него есть простой интерфейс, где вы можете просматривать несколько JAR и одновременно искать определенный класс в нескольких JAR.

Ответ 19

Eclipse 3.4 JDT

Это не самый быстрый способ, потому что сначала вы должны перенести его в свое затмение. Но у вас будет полный просмотр java-класса, даже с декомпиляцией.

Ответ 20

Я установил действие по умолчанию в Windows на "Открыть с помощью WinZip". Это упрощает управление JAR как архивами. Вы даже можете добавлять/удалять файлы вручную.

Ответ 21

Я думаю, что Java Decomplier - ваш лучший вариант, который вы можете скачать здесь: http://jd.benow.ca/ Preview

Ответ 22

Мое требование состояло в том, чтобы просмотреть содержимое файла (например, файла свойств) внутри фляги, фактически не извлекая флягу. Если кто-то достиг этой темы, как я, попробуйте эту команду -

unzip -p myjar.jar myfile.txt

Это хорошо сработало для меня!

Ответ 23

Вы можете попробовать JarSpy. Существует версия плагина IDEA, которую я использую.

Ответ 24

Ваша IDE также должна поддерживать это. Моя среда IDE (SlickeEdit) называет ее "библиотекой тегов". Просто добавьте библиотеку тегов для файла jar, и вы должны иметь возможность просматривать классы и методы иерархически.

Ответ 25

На Mac там Jarzilla

Ответ 26

Я использую JarExplorer или JarVisualizer.

Ответ 27

Вы можете попробовать JarNavigator для просмотра и поиска содержимого файла jar.

Ответ 28

java -xf some-j.jar JAR файл.