Гид по технологиям

Как просмотреть и извлечь содержимое JAR‑файла

4 min read Java Обновлено 05 Jan 2026
Как просмотреть и извлечь содержимое JAR‑файла
Как просмотреть и извлечь содержимое JAR‑файла

Крупный план открытого ящика картотеки с множеством карточек

Что такое JAR в одной строке

JAR (Java ARchive) — это ZIP‑совместимый архив, который обычно содержит скомпилированные классы Java, ресурсы и файл MANIFEST.MF. Простая аналогия: это папка проекта, упакованная в один файл.

Короткая справка по целям статьи

  • Быстро посмотреть, какие файлы внутри JAR, не извлекая его полностью.
  • Извлечь весь архив или отдельные файлы.
  • Использовать альтернативы на платформах без JDK.
  • Проверить MANIFEST и подписи.

Быстрые команды (на всех платформах)

  • Показать список файлов в JAR:
jar tf YourJarFile.jar
  • Показать список с подробной информацией (verbose):
jar tvf YourJarFile.jar
  • Извлечь все файлы в текущую директорию:
jar xf YourJarFile.jar
  • Извлечь конкретные файлы (перечислить после имени архива):
jar xf YourJarFile.jar path/to/resource.txt com/example/App.class

Важно: опции можно указывать в любом порядке (например, tfv), но между буквами не ставьте пробелов.

Как просмотреть содержимое без извлечения — подробно

  1. Откройте терминал/командную строку.
  2. Перейдите в папку с JAR или укажите путь к файлу.
  3. Выполните:
jar tf /путь/к/YourJarFile.jar

Результат — список путей внутри архива, например:

META-INF/
META-INF/MANIFEST.MF
com/example/App.class
resources/config.yml

Совет: если хотите отфильтровать по расширению, используйте grep:

jar tf YourJarFile.jar | grep "\.class$"

Просмотр деталей (даты, права, размер)

jar tvf YourJarFile.jar

Эта команда выводит более подробную информацию: дату, размер и уровень сжатия.

Как посмотреть только MANIFEST.MF

MANIFEST содержит метаданные архива (версию, главный класс и т. п.). Просмотреть его можно двумя способами:

  • Извлечь только файл MANIFEST:
jar xf YourJarFile.jar META-INF/MANIFEST.MF
cat META-INF/MANIFEST.MF
  • Посмотреть без записи на диск (используя unzip):
unzip -p YourJarFile.jar META-INF/MANIFEST.MF | sed -n '1,200p'

Как извлечь JAR — подробности и варианты

  • Извлечь всё в текущую директорию:
jar xf YourJarFile.jar

Архив распакует структуру директорий точно так, как она внутри JAR.

  • Извлечь только выбранные файлы (перечислите через пробел):
jar xf YourJarFile.jar templates/login.html templates/payment.html
  • Извлечь в другую директорию — два варианта:
  1. Перейти в целевую директорию и запустить извлечение:
mkdir -p /путь/к/target && cd /путь/к/target
jar xf ../путь/к/YourJarFile.jar
  1. Использовать unzip, если нужно указать директорию напрямую:
unzip /путь/к/YourJarFile.jar -d /путь/к/target

Примечание: инструмент jar не имеет опции -C как tar. Для выбора целевой директории проще воспользоваться unzip или временно перейти в нужную папку.

Что делать, если jar недоступен (jar: command not found)

  • Установите JDK/OpenJDK (команда jar входит в JDK). На Debian/Ubuntu: установите пакет openjdk‑development или openjdk‑11‑jdk.
  • Если установка невозможна, используйте unzip, 7‑Zip, WinRAR или любой ZIP‑совместимый архиватор — JAR по сути ZIP.

Графические инструменты (GUI)

Если предпочитаете визуальный интерфейс — подойдут:

  • 7‑Zip (Windows) — открывает JAR как ZIP.
  • WinRAR (Windows) — тот же подход.
  • The Unarchiver (macOS) или Keka (macOS) — распаковка.
  • JD‑GUI — графический просмотр и декомпиляция классов Java.

Важно: декомпиляция может нарушать лицензионные ограничения проекта — проверяйте права на код.

Альтернативные подходы и когда они полезны

  • unzip -l YourJarFile.jar — альтернативный способ получить список без JDK.
  • jar с ключом x для извлечения конкретных файлов удобен при точечной правке ресурсов.
  • JD‑GUI или CFR полезны, если нужно просмотреть логіку классов (деобфускация/декомпиляция).

Пример использования javap для просмотра сигнатур классов без декомпиляции исходников:

javap -classpath YourJarFile.jar com.example.YourClass

Безопасность и приватность

  • JAR может содержать исполняемый код. Не запускайте неизвестные JAR без проверки.
  • Подписанные JAR включают файлы в META‑INF (.SF, .RSA). Изменение содержимого нарушит подпись.
  • Для анализа вредоносных JAR выполняйте операции в изолированной среде или песочнице.

Важно: извлечение само по себе не исполняет код. Но запуск содержимого (java -jar) выполняет код в JAR.

Типичные ошибки и как их исправить

  • jar: command not found — установите JDK или используйте unzip.
  • Ошибка при извлечении: «no such file» — проверьте правильность пути и регистр символов (в Unix пути регистрозависимы).
  • Нельзя изменить подписанный JAR и оставить подпись валидной — подпись нужно пере‑создать.

Роль‑ориентированные чеклисты

  • Разработчик:

    • Просмотреть перечисление файлов (jar tf).
    • Найти MANIFEST и проверить Main‑Class.
    • Извлечь целевые ресурсы для локального теста.
  • Системный администратор / DevOps:

    • Проверить версию Java в MANIFEST или документации.
    • Убедиться, что зависимости и ресурсы на местах после распаковки.
    • Выполнить сканирование на вредоносный код при загрузках из ненадёжных источников.
  • Аудитор безопасности:

    • Проверить наличие META‑INF/.SF и .RSA (подписи).
    • Оценить присутствие сторонних библиотек с известными уязвимостями.

Когда просмотр или извлечение не помогут (ограничения)

  • JAR может быть зашифрован или обфусцирован — простой просмотр не даст читаемого кода.
  • Подписанные JAR нельзя изменить без потери подписи (это не ошибка, а защита).
  • Если JAR повреждён (коррупция ZIP), стандартные инструменты могут ошибаться; попробуйте zip‑repair утилиты.

Краткое резюме

  • Для быстрого просмотра используйте jar tf; для подробного — jar tvf.
  • Для извлечения используйте jar xf; если нужно указать целевую директорию — unzip с -d или временно перейдите в неё.
  • GUI‑архиваторы и декомпиляторы помогают при визуальном анализе, но учитывайте лицензионные и безопасностные ограничения.

Примечание: команды и примеры подходят для Linux, macOS и Windows (в PowerShell/командной строке), если установлен JDK или доступен zip‑инструмент.

Ключевые действия: проверьте MANIFEST, используйте jar tf / jar xf, применяйте unzip/7‑Zip при отсутствии JDK.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как получать результаты Craigslist на email
Руководство

Как получать результаты Craigslist на email

Модуль calendar в Python — быстрое руководство
Python

Модуль calendar в Python — быстрое руководство

Категории в Outlook: как настроить и выбрать цвета
Productivity

Категории в Outlook: как настроить и выбрать цвета

COUNT в Excel — подсчёт чисел быстро
Excel

COUNT в Excel — подсчёт чисел быстро

Snapchat My AI — обзор и советы
Социальные сети

Snapchat My AI — обзор и советы

Moto X: особенности и как получить их на Android
Smartphones

Moto X: особенности и как получить их на Android