Какой самый простой способ просмотреть классы, методы, свойства и т. Д. Внутри файла JAR? Я ищу что-то эквивалентное очень полезному Lutz Roeder .NET Reflector - для Java
Какой самый простой способ просмотреть классы, методы, свойства и т. Д. Внутри файла JAR? Я ищу что-то эквивалентное очень полезному Lutz Roeder .NET Reflector - для Java
Ответы:
Используя JDK, приведу jar -tf
список файлов в банке. javap
даст вам больше деталей из конкретного файла класса.
tar
как параметры являются обязательными.
C:\Program Files\Java\jdk<version>\bin
в вашу системную или пользовательскую переменную среды PATH, прежде чем вы сможете использовать jar
в качестве системной команды. (Где <version> - ваш номер версии сборки jdk. Проверьте это C:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
Я обычно открываю их с помощью 7-Zip ... Это позволяет хотя бы видеть пакеты, классы и ресурсы.
Если мне нужно увидеть методы или поля, я бы использовал Jad, но, конечно, лучше положиться на (хороший) JavaDoc ...
Теперь, где-то в SO было упомянуто несколько плагинов Eclipse, чтобы найти, в каком jar-файле находится класс, возможно, они могут сделать больше (т.е. то, что вы запросили).
[РЕДАКТИРОВАТЬ] Ссылка на SO поток. Не то, что спрашивается, а как-то связано, поэтому полезно: Java: Как узнать, какой jar-файл использовать, учитывая имя класса?
Я лично использую JD-GUI. Это бесплатный «декомпилятор», так как он позволяет вам видеть исходный код, классы и объекты в классах, а также видеть структуру файла в древовидном меню слева. Однако это не позволяет вам изменять классы напрямую.
Сайт JD-GUI: http://jd.benow.ca/
Если кто-то еще этого не знает, JAR-файл - это просто ZIP-файл, который содержит классы программы, ресурсы и т. Д., А также некоторые метаданные. Вы можете извлечь один, чтобы увидеть, как он сложен.
Поэтому я использую unzip
команду, которую легко запомнить и использовать.
unzip -l <jar-file-name>.jar
Например, если у вас есть JAR-файл с именем, test.jar
то unzip -l test.jar
будет перечислено все содержимое JAR-файла.
Хотя все остальные ответы хороши, но в большинстве из них вам придется использовать какое-то программное обеспечение, например, 7 zip
или JDK
какой-либо другой инструмент Eclipse, в то время как для этого не нужно иметь какой-либо из этих больших программ, и он поставляется по умолчанию в Linux. и Mac, так что его очень легкий и удобный в использовании .
Вы также можете использовать zipinfo <your jar file>
. если ваша ОС поддерживает это.
Добавляя jar-файл к проекту в IDE, вы обычно можете видеть методы и имена полей, но не детальную реализацию. NetBeans может сделать это, возможно, Eclipse, IntelliJ и т. Д. Вы можете просматривать структуру jar непосредственно в IDE.
Для чего-либо, например, просмотра содержимого, вы можете использовать:
jar tvf jarfile.jar
Для доступа к исходному коду вы должны использовать декомпилятор, такой как JAD или один из его внешних интерфейсов или другой декомпилятор. Если код запутан, то ...
Расширяя ответ Tom Hawtin, вы можете направить список, чтобы отфильтровать нужный класс или файлы:
jar tf my-fat-jar-file.jar | grep filename
Это должно работать на bash / zsh и аналогичных файлах, или на eshell emacs.
Дополнительная информация: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html.
jar -tvf file_name.jar
выше будет печатать только имена файлов .
Чтобы просмотреть содержимое файлов, вы можете извлечь файлы в папке :
jar -xvf file_name.jar
это разархивирует файл jar и поместит содержимое в тот же каталог, где вы его запускаете.
Или в Windows переименуйте файл .jar в .zip и затем вы можете разархивировать, чтобы извлечь и просмотреть содержимое файла jar. Поскольку jar является внутренним zip-файлом.
Используйте WinRar . Это откроет структуру папок для вас в целости и сохранности. Также позволяет редактировать в архиве, сохраняя пути.
В конце концов, JAR-файл - это только ZIP-архив.
Если вам нравится видеть, что внутри, просто переименуйте в качестве первого варианта ниже ..
F2 & Rename to jarfile.zip
// Используем любую расстегивающую молнию ...
jar tvf jarfile.jar
jar tf jarfile.jar
Если я правильно понимаю, вы хотите видеть не только классы, но и методы, свойства и так далее. Единственный известный мне инструмент, который может это сделать, - это Eclipse - если вы добавите jar в проект classpath, вы сможете просматривать его классы с помощью методов и свойств, используя обычный проводник пакетов.
Во всяком случае, это хорошая идея для хорошего автономного инструмента Java
Джад клунки и больше не поддерживается. Я переключился на «Java Decompiler» , который имеет приятный пользовательский интерфейс и поддержку новых языковых функций.
Каждый используемый мной декомпилятор работает с кодом, который он не может успешно декомпилировать. Для них это помогает понять дизассемблированный байт-код Java, созданный стандартным инструментом JDK, javap .
Ну, jar-файл - это просто zip-файл, поэтому, если вы разархивируете его (с помощью вашей любимой утилиты разархивирования), вы получите все файлы внутри.
Если вы хотите заглянуть в файлы классов, чтобы увидеть методы, вам понадобится инструмент для этого. Как упоминает PhiLho, Eclipse способен сделать это (по умолчанию), и я думаю, что большинство Java IDE способны на это.
В Eclipse 3.4 делаю
Если просмотр исходного кода тоже является проблемой, откройте новый вопрос.
Для навигации на уровне Jar-файла (в виде zip-файла) я использую 7zip, который работает очень хорошо, и позволяет просматривать и редактировать записи, что отлично подходит для устранения неполадок.
Один из способов сделать это - открыть перспективу в «Проводнике пакетов». Делая это, вы можете увидеть структуру вашей банки с деталями класса. Для этого проверьте папку библиотеки в вашем проекте с помощью проводника пакетов.
Окно >> Показать представление >> Другое >> Java >> Package Explorer
Другой способ, вы можете использовать JarPlug в качестве плагина Eclipse. Это работает в eclipse / springsource
Вы можете открыть их с помощью большинства утилит декомпрессии в эти дни, а затем просто получить что-то вроде DJ Java Decompiler, если вы хотите просмотреть исходный код.
Bndtools предоставляет бесплатный плагин для просмотра JAR для Eclipse.
Добавьте сайт обновлений Eclipse и установите только средство просмотра.
Мое требование состояло в том, чтобы просмотреть содержимое файла (например, файла свойств) внутри фляги, фактически не извлекая флягу. Если кто-то достиг этой темы, как я, попробуйте эту команду -
unzip -p myjar.jar myfile.txt
Это хорошо сработало для меня!
Я думаю, что Java Decomplier - ваш лучший вариант, который вы можете скачать здесь: http://jd.benow.ca/
Я предпочитаю JAR Browser , он имеет простой интерфейс, где вы можете просматривать несколько JAR-файлов и искать определенный класс по нескольким JAR-файлам одновременно.
Этот Jar Explorer достаточно хорош.
Поддерживает три типа декомпиляторов: JD, Procyon и Fernflower.
Позволяет искать файлы и дубликаты в любом архиве Java.
Также пользователь может изменять jar с помощью файлов D & D и редактировать некоторые файлы, не относящиеся к классу.
Я использую JarExplorer или JarVisualizer .
Вы можете попробовать JarNavigator для просмотра и поиска содержимого файла JAR .
Также вы можете использовать Luyten - GUI декомпилятора с открытым исходным кодом.