Инструменты пользователя

Инструменты сайта


prog:jar-lib

Допустим имеется у нас маленькая программка, которая работает с базой данный SQLite. Создадим JAR-файл и поместим в него все необходимое для работы. Берем sqlite-jdbc-3.7.2.jar, распаковываем в наш каталог с проектом.

alexey@G580:~/java-src/samples/DisplayQueryResults$ ll
итого 6,2M
drwxr-xr-x 3 alexey 4,0K авг.  27  2010 maven/
drwxr-xr-x 5 alexey 4,0K авг.  27  2010 native/
drwxr-xr-x 4 alexey 4,0K авг.  27  2010 org/
-rw-rw-r-- 1 alexey 1,1K окт.  12 15:30 DisplayQueryResults$1.class
-rw-rw-r-- 1 alexey  531 окт.  12 15:30 DisplayQueryResults$2.class
-rw-rw-r-- 1 alexey 2,6K окт.  12 15:30 DisplayQueryResults.class
-rw-rw-r-- 1 alexey 3,1M окт.  12 17:52 DisplayQueryResults.jar
-rw-rw-r-- 1 alexey 2,7K окт.  12 14:34 DisplayQueryResults.java
-rw-r--r-- 1 alexey   69 окт.  12 17:35 MANIFEST.MF
-rw-r--r-- 1 alexey 4,0K окт.  12 15:25 pressure.db
-rw-rw-r-- 1 alexey 2,7K окт.  12 15:30 ResultSetTableModel.class
-rw-rw-r-- 1 alexey 2,4K окт.  12 15:32 ResultSetTableModel.java
-rw------- 1 alexey 3,1M июня  22 13:29 sqlite-jdbc-3.7.2.jar

Создадим MANIFEST.MF, не забываем о пустой строке в конце файла. Так как файлики лежат у нас прямо под ногами, то добавляем в MANIFEST.MF только одну строчку: Class-Path: .

Manifest-Version: 1.0
Class-Path: .
Main-Class: DisplayQueryResults

Теперь создаем JAR. Добавляем в него наши классы скомпилированные и каталоги в которые распаковался наш sqlite-драйвер.

jar cvfm DisplayQueryResults.jar MANIFEST.MF  org/ native/  *.class

Запускаем нашу программу:

java -jar DisplayQueryResults.jar

Теперь сделаем JAR не включая в него библиотеки, а просто указав в манифесте где их брать. Для простоты положим sqlite-jdbc-3.8.6.jar в тот же каталог, в котором лежат наши *.class Подправим MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_65 (Oracle Corporation)
Class-Path: sqlite-jdbc-3.8.6.jar
Main-Class: DisplayQueryResults

Создадим JAR

jar -cfm DisplayQueryResults.jar MANIFEST.MF *.class
prog/jar-lib.txt · Последние изменения: Sun, 12 Oct 2014 20:14 — root