Страницы

Поиск по вопросам

понедельник, 8 октября 2018 г.

Что такое jar файл и зачем он нужен?

Вопрос такой что такое jar файл и зачем он нужен на практике. Ведь если есть файл java, есть файл class который уже переведен в байт-код, зачем тогда jar файл?
Какая его функция и можно ли без него обойтись?


Ответ

JAR-файл — это Java-архив (Java ARchive). Это простой архивный файл, сжатый (иногда с нулевой компрессией) по алгоритму zip
Он был создан для удобства распространения программ, написанных на Java. Так как обычная программа содержит сотни, тысячи, а иногда и миллионы файлов. Файл может содержать:
файл манифеста META-INF/MANIFEST.MF java-файлы (исходный код) class-файлы файлы, необходимые для работы программы: картинки, файлы с настройками и прочее (ресурсы) электронные подписи, которые позволяют защитить программу от модификации
Манифест - это текстовый файл формата ключ: значение; он содержит описание jar-файла. В нем могут быть следующие ключи:
Manifest-Version - версия манифеста Main-Class - имя главного класса (должен содержать метод main), такой jar-файл можно запустить как обычный исполняемый файл Class-Path - позволяет указать CLASSPATH, который необходим для полноценной работы программы SHA-Digest - контрольная сумма определенного файла внутри архива
Кроме jar, также существуют другие архивы, связанные с Java:
WAR (Web Application aRchive) - содержит в себе приложение для веба EAR (Enterprise Application aRchive) - содержит в себе энтерпрайз приложение (обычно из нескольких модулей) APK (Android aPplication pacKage) - содержит в себе приложение для Android
Можно ли обойтись без?
В принципе, можно, все что вам необходимо - это всегда точно копировать структуру вашего приложения. То есть все класс-файлы и файлы с ресурсами должны располагаться в правильных директориях. Переменная CLASSPATH должна содержать пути ко всем зависимостям. Если эти условия соблюдены, то ваше приложение будет работать без упаковки в jar.
P.S. В переводе с английского, jar - означает банка, стеклянный или керамический цилиндрический контейнер с широким горлом, предназначенный для хранения еды (обычно). Кофе часто хранят в банках, так что тут игра слов: банка с кофе - банка с java-классами.

Комментариев нет:

Отправить комментарий