Preamble

Lasaris

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