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

  • 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í - i nejavové (např. typicky dokumentace API - HTML, 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