Назад Зміст Вперед

3.6. Використання jar-файлів

JAR (від англ. Java ARchive) — Java-архів. Являє собою ZIP-архів, в якому міститься частина програми на мові Java.
Щоб JAR-файл виконувався, він повинен містити файл MANIFEST.MF в каталозі META-INF, в якому повинен бути зазначений головний клас програми (такий клас повинен містити метод main і задаватись параметром Main-Class). Номер версії JAR задається параметром Manifest-Version і є обов'язковим. У SDK 1.2 значення цього параметра має дорівнювати 1.0.
JAR файл складається з одного файлу, що містить набір файлів, упакованих за допомогою Zip, поряд з "маніфестом", який описує їх. (Ви можете створити свій власний файл маніфесту; в іншому випадку програма jar зробить це за вас.) Ви можете знайти більше інформації про файли маніфесту JAR в HTML документації для JDK.
Утиліта jar автоматично компресує файли за вашим вибором. Ви можете викликати її з командного рядка:
     jar [options] destination [manifest] inputfile(s)
Опції:
c - Створює новий або порожній архів.
t - Список змісту.
x - Видобути всі файли.
x file - Витягує вказаний файл.
f - Каже: "Я дам тобі ім'я файлу". Якщо ви не використовуєте це, jar зрозуміє, що введення повинне йти через стандартне введення або, якщо створюється файл, висновок відбувається через стандартний висновок.

m - Говорить про те, що перший аргумент буде ім'ям файлу маніфесту, створеного користувачем. 
v   Генерує докладний висновок, що описує те, що робить jar.
о - Тільки зберігання файлів; НЕ компресують файли (використовуйте для створення JAR -файлу, який ви можете помістити в ваш classpath).
M - Не виконується автоматичне створення файлу маніфесту.
Якщо піддиректорії включаються в файли, що поміщаються в JAR-файл, ці піддиректорії додаються автоматично, включно з усіма вкладеними піддиректорії і т.д. Інформація про шляхи теж зберігається.
     jar cf myJarFile.jar *. class
     jar cmf myJarFile.jar myManifestFile.mf *. class
     jar tf myJarFile.jar
     jar tvf myJarFile.jar
     jar cvf myApp.jar audio classes image
     CLASSPATH = "lib1.jar; lib2.jar;"
Ось типовий спосіб виклику jar:
     jar cf myJarFile.jar *.class
Це створює JAR файл під назвою myJarFile.jar, що містить всі файли класів з поточної директорії поряд з автоматично згенерували файлом маніфесту.
     jar cmf myJarFile.jar myManifestFile.mf *.class
Як і в попередньому прикладі, але додається файл маніфесту, створений користувачем. Він називається myManifestFile.mf.
     jar tf myJarFile.jar
Створюється файл myJarFile.jar.
     jar tvf myJarFile.jar
Додає прапор "verbose", щоб отримати більш детальну інформацію про файли в myJarFile.jar.
     jar cvf myApp.jar audio classes image
Беручи до уваги, що audio, classes та image є піддиректоріями, таким чином, все збирається в файл myApp.jar. Також включений прапорець "verbose", аби мати зворотній зв'язок, поки працює програма jar.
Якщо ви створюєте JAR-файл, використовуючи опцію о, такий файл може бути поміщений в ваш CLASSPATH:
     CLASSPATH="lib1.jar;lib2.jar;"
Після цього Java може шукати файли lib1.jar і lib2.jar.
Інструмент jar не є таким же корисним, як утиліта zip. Наприклад, ви не можете додати або оновити файли існуючого JAR-файлу; ви можете створити JAR-файл тільки з самого початку. Також ви не можете перемістити файл в JAR-файл і стерти його відразу, як тільки він буде переміщений. Однак JAR-файл, створений на одній платформі, може бути прочитаний інструментом jar на будь-який іншій платформі.
JAR-файли також використовуються для упаковки JavaBeans.



Як створити JAR файл

Метод 1: Windows
1. Підготуйте файли. Помістіть всі файли, які ви хочете включити в JAR-файл, в одну папку. На них потрібно буде послатися за допомогою командного рядка, тому використання різних шляхів до них не представляється можливим.
2. Відкрийте командний рядок. Це можна зробити, натиснувши кнопку Пуск і потім Виконати. Наберіть в текстовому полі cmd і натисніть кнопку "OK".
3. Перейдіть до папки, в якій ви розмістили файли. За замовчуванням командний рядок читає з "C:\>." Щоб перейти на вкладені папки на жорсткому диску, використовуйте команду "змінити директорію"("change directory"), набравши "cd."
Наприклад, якщо ваші файли розташовані в "C:\myfiles" вам слід набрати команду cd \myfiles." Щоб перейти прямо в потрібну директорію, в Провіднику утримуйте клавішу Shift і клацніть правою кнопкою миші на потрібній папці. Потім виберіть "Відкрити командний рядок тут".
4. Встановіть шлях до папки JDK bin. Для створення JAR-файлу вам потрібно буде запустити утиліту jar.exe цей файл знаходиться в папці bin.
Використовуйте команду "path", щоб вказати шлях до папки JDK bin. Наприклад, якщо ви встановлювали JDK в папку за замовчуванням, вам слід набрати: "path c:\Program Files\Java\jdk1.5.0_09\bin"
Якщо ви не знаєте точно потрібну папку, перейдіть до неї в провіднику Windows і запишіть повний шлях до папки.
5. Створіть JAR-файл. Формат командного рядка для створення JAR-файлу виглядає приблизно так: "jar cf 'jar-файл'.jar вхідні_файли."
Слово "jar" посилається на програму jar.exe, яка створює JAR-файл.
Опція "c" означає, що ви хочете створити JAR-файл
Опція "f" означає, що ви хочете вказати ім'я файлу.
У "jar-файл" ви повинні вказати бажане ім'я файлу.
"вхідні_файли" це розділений пробілами список файлів, які повинні бути включені в JAR-файл.
Наприклад ви можете ввести "jar cf myjar manifest.txt myclass.class." Буде створено JAR-файл з іменем "myjar.jar", який буде включати в себе файли "manifest.txt" і "myclass.class."
Якщо ви додаєте папки до JAR-файл, утиліта jar.exe автоматично додасть їх вміст.


Метод 2: Mac

  1. Підготуйте ваші файли. Помістіть всі файли, які ви хочете включити в JAR-файл, в одну папку.
  2. Відкрийте командний рядок Термінал і перейдіть в ньому на тій папці, в якій розташовані ваші JAR-файли.
  3. Скомпілюйте клас .java. Наприклад, скомпілюйте HelloWorld.java з допомогою: javac HelloWorld.java
  4. Буде створено файл .class, який потрібен для JAR-файлу.
  5. Створіть файл маніфесту. Збережіть з розширенням .txt, використовуючи редактор тексту, та введіть наступне: Main-Class: HelloWorld (або як називається ваш клас )

Примітка: цей файл маніфесту повинен закінчуватися символом переходу на новий рядок
1) Створіть JAR-файл за допомогою цієї команди:
  jar cfm HelloWorld.jar Manifest.txt HelloWorld.class2) Запустіть jar-файл

Поради
Ви можете створювати цифровий підпис до ваших JAR-файлів для підвищення їх безпеки. Це можна зробити за допомогою команди "jarsigner" в JDK.
Ви також можете створювати JAR-файли за допомогою стандартних утиліт стиснення, наприклад таких, які використовуються для створення ZIP-файлів. Якщо ви це робите, обов'язково вказуйте, що файл маніфесту повинен бути першим включений в архів.
.