Nástroj JAR

  • Javové programy se distribuují k uživateli různými způsoby.

  • Ať už je způsob jakýkoli, většinou se však kód pro účel šíření balí pomocí nástroje jar (Java ARchiver).

  • Distribucí nemyslíme použití nástroje typu "InstallShield"…​, ale spíše něčeho podobného tar / ZIP.

  • Java na sbalení množiny souborů zdrojových i přeložených (.class) a dalších nabízí nástroj jar .

  • Sbalením vznikne soubor (archív) .jar formátově podobný ZIP u (obvykle je to ZIP formát), ale nemusí být komprimován.

  • Kromě souborů obsahuje i metainformace (tzv. MANIFEST)

  • Součástí archívu nejsou jen .class soubory, ale i další zdroje, např. obrázky, soubory s národními variantami řetězců (resouce bundles), zdrojové texty programu, dokumentace …​

Spuštění jar

  • Spuštění: jar {ctxu} [vfm0M] [jar-file] [manifest-file] [-C dir] files

    • c - vytvoří archív

    • t - vypíše obsah archívu

    • x - extrahuje archív

    • u - aktualizuje obsah archívu

  • Volby:

    • v - verbose

    • 0 - soubory nekomprimuje

    • f - pracuje se se souborem, ne se "stdio"

    • m - přibalí metainformace z manifest-file

  • Parametr files uvádí, které soubory se sbalí, mohou být i nejavové (např. dokumentace API nebo datové soubory)

jar - příklad

  • Vezměme následující zdrojový text třídy JarDemo v balíku tomp.ucebnice.jar, tj. v adresáři c:\tomp\pb162\java\tomp\ucebnice\jar

  • Vytvoříme archív se všemi soubory z podadresáře tomp/ucebnice/jar (s volbou c - create, v - verbose, f - do souboru):

  • jar cvf jardemo tomp/ucebnice/jar

  • Vzniklý .jar soubor lze prohlédnout/rozbalit také běžným nástrojem typu unzip, gunzip, WinZip, PowerArchiver nebo souborovým managerem.

  • Tento archív rozbalíme v adresáři /temp následujícím způsobem:

  • jar xvf jardemo

Rozšíření .jar archívů

  • Formáty vycházející z JAR:

    • webové aplikace → .war

    • enterprise (EJB) aplikace → .ear

  • Liší se podrobnějším předepsáním adresářové struktury a dalšími povinnými metainformacemi.

Tvorba spustitelných archívů

  • Vytvoříme jar s manifestem obsahujícím tento řádek: Main-Class: NázevSpouštěnéTřídy

  • poté zadáme: java -jar NázevJARu.jar

  • a spustí se metoda main třídy NázevSpouštěnéTřídy.

Spuštění archívu - příklad

  • Spuštění aplikace zabalené ve spustitelném archívu je snadné:

    java -jar jardemo.jar
  • a spustí se metoda main třídy tomp.ucebnice.jar.JarDemo:

Další příklad spuštění jar

  • jar tfv svet.jar | more

  • vypíše po obrazovkách obsah (listing) archívu svet.jar