JAR-файл - це Java-архів (J ava AR chive). Це простий архівний файл, стиснутий (іноді з нульовою компресією) за алгоритмом zip.
Він був створений для зручності розповсюдження програм, написаних на Java. Так як звичайна програма містить сотні, тисячі, а іноді і мільйони файлів. Файл може містити:
- файл маніфесту META-INF / MANIFEST.MF
- java-файли (вихідний код)
- class-файли
- файли, необхідні для роботи програми: картинки, файли з настройками та інше (ресурси)
- електронні підписи, які дозволяють захистити програму від модифікації
Маніфест - це текстовий файл формату ключ: значення; він містить опис jar-файлу. У ньому можуть бути наступні ключі:
- Manifest-Version - версія маніфесту
- Main-Class - ім'я головного класу (повинен містити метод main), такий jar-файл можна запустити як звичайний виконуваний файл
- Class-Path - дозволяє вказати CLASSPATH. який необхідний для повноцінної роботи програми
- SHA-Digest - контрольна сума визначеного файлу всередині архіву
Крім jar. також існують інші архіви, пов'язані з Java:
Чи можна обійтися без?
В принципі, можна, все що вам необхідно - це завжди точно копіювати структуру вашої програми. Тобто все клас-файли і файли з ресурсами повинні розташовуватися в правильних директоріях. Мінлива CLASSPATH повинна містити шляху до всіх залежностей. Якщо ці умови дотримані, то ваш додаток буде працювати без упаковки в jar.
P.S. У перекладі з англійської, jar - означає банку. скляний або керамічний циліндричний контейнер з широким горлом, призначений для зберігання їжі (зазвичай). Кава часто зберігають в банках, так що тут гра слів: банку з кавою - банку з java-класами.