Distribuce aplikací přes balíčky JAR

Tomáš Pitner, upravil Marek Šabo
tomp@fi.muni.cz

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

/