Distribuce aplikací přes balíčky JAR Tomáš Pitner, Radek Ošlejšek, Marek Šabo Vtip 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 1 ◦ 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. 2 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 3