abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    včera 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    včera 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 6
    14.1. 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    14.1. 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (4%)
     (0%)
     (8%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (44%)
    Celkem 450 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    Rozcestník

    Dotaz: Jak (na)instalovat javovskou aplikaci?

    6.3.2010 18:38 qwertzuiop
    Jak (na)instalovat javovskou aplikaci?
    Přečteno: 629×
    Vytvořil jsem nějakou javovskou (JSE) aplikaci - je úplně jedno, co je to konkrétně zač. Produktem je adresář se souborem *.jar a několika konfiguračními soubory. Spouští se to jednoduše, prostě se nějak (v prohlížeči souborů, v příkazové řádce, ...) vyvolá program java, kterému se předá soubor *.jar + případné argumenty. Konfiguráky si aplikace načte - ví, že jsou ve stejném adresáři jako ona sama.

    Nyní ale přicházím k tomu, že je aplikaci třeba nějak instalovat, tím myslím dle konvencí daného systému. Např. v GNU/Linuxu to znamená umístit konfiguráky do /etc, odkaz na spustitelný soubor do /usr/bin, další soubory někam do /usr a tak dále...

    Zatím je všechno jasné, ale jak to udělat, aby to bylo co nejmíň pracné? Například je problém s umístěním různých datových souborů (třeba konfiguráků) aplikace - jak se aplikace dozví, kde jsou?

    Pokud vím, například aplikacím v C se tato informace sděluje "napevno" při kompilaci. Jenže tomu bych se u javovské aplikace rád vyhnul - samotný bajtkód je přenositelný a nechci ho tedy furt kompilovat.

    Uvažoval jsem nad možností, že by se do souboru *.jar přidal jeden jediný konfigurák, který by jen obsahoval informace o tom, kde jsou další konfigurační soubory (obsahující konfiguraci aplikace), data atd.

    Existuje i jiná, lepší cesta?

    Upozorňuji, že se nyní nebavím o balíčkovacích systémech - bavím se o způsobu, jak vytvořit mechanismus, který by balíčkovací systémy používaly.

    Díky za názory.

    Odpovědi

    6.3.2010 18:54 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Javovské aplikace se většinou dělají tak, že je vše v jednom umístění – tedy jak samotná aplikace, tak konfigurační soubory. Můžete to udělat stejně, můžete to udělat vámi popsaným způsobem (v JARu informace o umístění dalších konfiguráků), přičemž ten JAR zmodifikujete při instalaci. Nejčistší z pohledu Javy je použití tříd z balíčku java.util.prefs (nejlépe pro celou konfiguraci, nebo alespoň pro umístění konfiguračních souborů), problém může nastat v tom, že toto je závislé na konkrétní JVM – tj. instalátor by musel spustit Javovskou aplikaci, která hodnoty nastaví, a pokud by náhodou uživatel používal JVM od více dodavatelů, nebudou toto nastavení sdílet.
    6.3.2010 19:05 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    > Nejčistší z pohledu Javy je použití ...

    Já bych byl ale rád, kdyby to bylo "čisté" i z pohledu systému, na který se instaluje.

    > Nejčistší z pohledu Javy je použití tříd z balíčku java.util.prefs

    Mrknu se na možnosti tohoto balíčku.
    6.3.2010 19:15 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Rozhodl jsem se java.util.prefs nepoužít.
    6.3.2010 19:46 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Já bych byl ale rád, kdyby to bylo "čisté" i z pohledu systému, na který se instaluje.
    To ale obojí dohromady splnit nejde. Čisté z pohledu OS je šířit aplikaci na Windows jako binárku a konfiguraci zapisovat do registrů (kam se z čisté Javy nedostanete, přestože implementace JVM od Sunu zrovna konfiguraci z java.util.prefs do registrů ukládá); na Linuxu pak šířit aplikaci pomocí balíčkovacích systémů, kde budete mít aplikaci se „zadrátovanými“ cestami ke konfiguračním souborům přímo v binárce. To ale zase odporuje Javovskému požadavku na multiplatformnost. Upravovat konfigurační soubor v JARu při instalaci je asi nejlepší kompromis – aplikace zůstane multiplatformní, na unixových systémech můžete konfiguraci uložit do /etc, na Windows se nějaký textový konfigurační soubor taky přežije.
    6.3.2010 22:56 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    > Upravovat konfigurační soubor v JARu při instalaci je asi nejlepší kompromis – aplikace zůstane multiplatformní, na unixových systémech můžete konfiguraci uložit do /etc, na Windows se nějaký textový konfigurační soubor taky přežije.

    Takto to nejspíš udělám.
    6.3.2010 18:58 Vinicius
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Já to dělám tak, že konfigurační soubory do kterých se musí také zapisovat, má moje aplikace napsaná v Javě v podadresáři podadresáře získaného voláním System.getProperty("user.home") a nikde jinde.

    Další možností je zjišťovat za běhu, na jakém OS program běží a podle toho se zařídit, nebo jak zmiňujete přidat něco do .jar souboru.
    6.3.2010 19:03 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    > konfigurační soubory do kterých se musí také zapisovat, má moje aplikace napsaná v Javě v podadresáři podadresáře získaného voláním System.getProperty("user.home")

    Ano, takto to je u konfiguráků uživatele. Ale zároveň někam potřebuji umístit konfiguráky, ke kterým uživatel nemá mít přístup, plus výchozí hodnoty těch, ke kterým přístup má.

    > Další možností je zjišťovat za běhu, na jakém OS program běží a podle toho se zařídit

    Tady je ale problém, že by bylo třeba počítat nejen s různými rodinami operačních systémů (unixového typu, Windows, ...), ale i jednotlivými systémy - bylo by to podle mě moc pracné a s neuspokojivým výsledkem...
    xkucf03 avatar 14.3.2010 18:16 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše skript
    Ale zároveň někam potřebuji umístit konfiguráky, ke kterým uživatel nemá mít přístup, plus výchozí hodnoty těch, ke kterým přístup má.

    Normálně do podadresáře v /etc/ – akorát tuhle cestu nedávat natvrdo do zdrojáků, ale přebírat ji třeba z parametrů příkazového řádku nebo z proměnné prostředí (stejně tu aplikaci bude spouštět nějakým .sh skriptem a ne poklikáním na .jar, tak to /etc/ uvedeš v tom skriptu – který se dá snadno měnit bez kompilace).

    Jinak koukni na izpack – nástroj na vytváření instalátorů, jak to řeší třeba v něm. Další možnost je Java Web Start, což je asi nejpohodlnější způsob instalace a (hlavně) automatické aktualizace aplikací. Akorát aplikace v takovém případě bývá instalována pro konkrétního uživatele, ne pro všechny.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    16.3.2010 18:16 qwertzuiop
    Rozbalit Rozbalit vše Re: skript
    > Jinak koukni na izpack – nástroj na vytváření instalátorů, jak to řeší třeba v něm.

    Rozhodně nechci do aplikace o pár stovkách kB dodávat nějaký instalátor...

    > Další možnost je Java Web Start, což je asi nejpohodlnější způsob instalace a (hlavně) automatické aktualizace aplikací.

    Web Start se mi nelíbí. Přijde mi to dobré na vyzkoušení aplikace, ale na běžné používání ne. Zbytečně se do celé věci zatahuje další nástroj atd.

    > Akorát aplikace v takovém případě bývá instalována pro konkrétního uživatele, ne pro všechny.

    To je právě jeden z hlavních problémů. (I když přiznávám, že nevím, zda by to nešlo nějak vyřešit.)
    16.3.2010 18:34 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: skript
    Já jen k webstartu... mě se zase na něm třebas líbí to, že nemusím řešit aktualizaci u klienta, prostě se mu to aktualizuje samo. Nemyslím, že ten overhead je tam nějak velký, v podstatě jen musíš udělat jnlp soubor a případně to celé podepsat, pokud to má šahat na disk nebo dělat jiné "nebezpečné" operace. Jinak se tam žádný "další nástroj" neuplatňuje, aplikace je stejná jako ta spouštěná lokálně.
    Překladač ti nikdy neřekne: "budeme kamarádi"
    17.3.2010 07:57 qwertzuiop
    Rozbalit Rozbalit vše Re: skript
    > Nemyslím, že ten overhead je tam nějak velký, v podstatě jen musíš udělat jnlp soubor a případně to celé podepsat, pokud to má šahat na disk nebo dělat jiné "nebezpečné" operace.

    Ano, z pohledu vývojáře to není přítěž, ale z pohledu uživatele podle mě ano:

    > Jinak se tam žádný "další nástroj" neuplatňuje, aplikace je stejná jako ta spouštěná lokálně.

    Tím nástrojem jsem myslel samotný Java Web Start. Například práce s tím správcem aplikací se mi moc nelíbí.
    17.3.2010 08:22 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: skript
    Ano, z pohledu vývojáře to není přítěž, ale z pohledu uživatele podle mě ano

    No mě přijde jednodušší kliknout jednou na link, počkat až se mi to stáhne, spustí a udělá ikonka na ploše než něco instalovat, ale to je asi věcí pohledu ve kterém se neshodneme :)

    Překladač ti nikdy neřekne: "budeme kamarádi"
    18.3.2010 23:04 qwertzuiop
    Rozbalit Rozbalit vše Re: skript
    No jo, jenže jsem přesvědčen, že případná manipulace s tím správcem aplikací by byla pro mnohé uživatele problém.

    Navíc ani já jako uživatel zrovna nejásám, když má nějaký program instatační systém jiný, než má mnou používaný operační systém jako doporučený. (Myslím, že třeba NetBeans mají nějaký svůj systém, je mi to nepříjemné.)
    7.3.2010 21:03 XY
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    a co tak pouzit symbolicke linky? cela aplikacia moze byt na jednom mieste (v jednom adresary) a napr v etc bude len odkaz na realny konfigurak, alebo naopak, v etc bude realne konfigurak a v aplikacnom adresary bude odkaz do etc, tym padom bude aplikacia hladat zdrojak len na jednom mieste, u seba

    tj:

    napr. niekde v /usr/lib/ bude adresar MojaSkvelaApp a v nom struktura:

    bin conf abc def ...

    a v conf bude linka config.properties smerujuca napr. do /etc/MojaSkvelaApp/config.properties, kde bude realne drzana konfiguracia

    v aplikacii potom len:

    Properties props = new Properties(home + "/conf/config.properties")

    takto nejako to ma tusim rieseny napr. tomcat na ubuntu
    13.3.2010 18:19 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Z pohledu aplikace je to určitě dobrá myšlenka - nebude třeba nic nastavovat, vše bude pohromadě.

    Ale je tady i druhý pohled - pohled správce systému. Když například bude chtít zazálohovat všechnu konfiguraci v /etc, zazálohuje si jen symbolický odkaz, nikoli konfiguraci samotnou. (Jsem si vědom, že některý SW to tak dělá, ale podle mě to není dobře.)
    13.3.2010 18:29 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Pořád přemýšlím proč není možné předat umístění konfiguračních souborů aplikaci při spuštění? Stejně musíš vědět, kam je při instalaci uložíš a nechápu proč si to chceš tak šíleně komplikovat nějakým vkládáním do jaru? Nahoře si psal, že to nechceš řešit pro každý systém extra ale to si podlě mě musíš vybrat, buď to bude pohromadě s aplikací nebo to bude "jinde". Ale to "jinde" musíš znát, tak či tak (protože instalace), takže závislosti na použitém OS se nevyhneš. Nebo mi pořád něco uniká?
    Překladač ti nikdy neřekne: "budeme kamarádi"
    14.3.2010 13:43 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    > Pořád přemýšlím proč není možné předat umístění konfiguračních souborů aplikaci při spuštění?

    Myslíš předat jako argumenty? To mi přijde moc nepřehledné. Aplikaci se předávají i další argumenty a musel bych udělat nějaký systém, jak rozeznávat, který argument znamená co.

    > Nahoře si psal, že to nechceš řešit pro každý systém extra ale to si podlě mě musíš vybrat, buď to bude pohromadě s aplikací nebo to bude "jinde".

    No, nechci to pořád kompilovat, ale upravit soubor v JARu nebo vytvořit nový JAR nepovažuji za problém.

    Preferuji styl "jinde".

    > Ale to "jinde" musíš znát, tak či tak (protože instalace), takže závislosti na použitém OS se nevyhneš. Nebo mi pořád něco uniká?

    Já to shrnu. Jsou tři různé věci: 1) soubor JAR; 2) soubor s definicemi umístění dat; 3) soubory s daty.

    ad 1) Soubor JAR bude umístěn kdekoli.

    ad 2) Soubor s definicemi umístění dat definuje, kde jsou další soubory. Tento soubor bude zabalen v JARu.

    ad 3) Soubory s daty budou umístěny tam, kde mají být dle soubory s definicemi.

    Takže mě zajímá jen soubor s definicemi umístění dat. A ten bude vždy v JARu, čili ve mně známé lokaci. Kde budou soubory s daty, to už si každý nastaví sám v tomto definičním souboru - a mě tedy nemusí zajímat ani použitý operační systém.
    14.3.2010 14:17 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Myslíš předat jako argumenty? To mi přijde moc nepřehledné. Aplikaci se předávají i další argumenty a musel bych udělat nějaký systém, jak rozeznávat, který argument znamená co.

    Proč systém, prostě to nastavíš přes java -Dklic=hodnota ... a pak si to přečteš skrz System.getProperty("klic").

    Překladač ti nikdy neřekne: "budeme kamarádi"
    16.3.2010 18:11 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    To už by byl jen detail toho případného systému.
    16.3.2010 18:36 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    No ale právě ten detail tě zbaví nutnosti měnit parsování argumentů příkazové řádky :-)
    Překladač ti nikdy neřekne: "budeme kamarádi"
    16.3.2010 18:45 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Vždyť já vím. ;)
    14.3.2010 13:31 qwertzuiop
    Rozbalit Rozbalit vše Re: Jak (na)instalovat javovskou aplikaci?
    Ještě mě napadá, že by ty symbolické odkazy mohly být v opačném směru - soubory by byly v /etc a v místě aplikace by byly symbolické odkazy vedoucí na ty soubory...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.