abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:33 | Nová verze

    Byla vydána (𝕏) nová verze 24.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 24.7 je Thriving Tiger. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Bezpečnostní upozornění

    Binarly REsearch upozorňuje na bezpečnostní problém PKFail (YouTube) v ekosystému UEFI. Stovky modelů zařízení používají pro Secure Boot testovací Platform Key vygenerovaný American Megatrends International (AMI) a jeho privátní část byla při úniku dat prozrazena. Do milionů zařízení (seznam v pdf) po celém světě tak útočníci mohou do Secure Bootu vložit podepsaný malware. Otestovat firmware si lze na stránce pk.fail. Ukázka PoC na Linuxu na Windows na YouTube.

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

    Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.2 (Mastodon, 𝕏). Přehled novinek na GitLabu. Vypíchnuta je rodičovská kontrola.

    Ladislav Hagara | Komentářů: 2
    včera 01:22 | IT novinky

    Společnost OpenAI představila vyhledávač SearchGPT propojující OpenAI modely umělé inteligence a informace z webů v reálném čase. Zatím jako prototyp pro vybrané uživatele. Zapsat se lze do pořadníku čekatelů.

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Distribuce Linux Mint 22 „Wilma“ byla vydána. Je založená na Ubuntu 24.04 LTS, ale s desktopovým prostředím Cinnamon (aktuálně verze 6.2), příp. MATE nebo Xfce, balíkem aplikací XApp, integrací balíčků Flatpak a dalšími změnami. Více v přehledu novinekpoznámkách k vydání.

    Fluttershy, yay! | Komentářů: 2
    25.7. 17:44 | Zajímavý článek Ladislav Hagara | Komentářů: 2
    25.7. 17:22 | Nová verze

    Byla vydána nová verze 14 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Vypíchnout lze podporu rozšíření v Lua.

    Ladislav Hagara | Komentářů: 0
    25.7. 17:11 | Nová verze

    Byla vydána verze 1.80.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    25.7. 14:11 | IT novinky

    Apple oznámil, že v beta verzi spustil své Apple Maps na webu. Podporován je také webový prohlížeč Chrome. Ne však na Linuxu.

    Ladislav Hagara | Komentářů: 23
    25.7. 13:11 | IT novinky

    Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 65 tisíc vývojářů. Z Česka jich bylo 710. Ze Slovenska 246.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Jak (na)instalovat javovskou aplikaci?

    6.3.2010 18:38 qwertzuiop
    Jak (na)instalovat javovskou aplikaci?
    Přečteno: 603×
    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: 68 | 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: 68 | 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: 49 | 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.