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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 2
včera 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 29
včera 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 8
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 14
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 25
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 16
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 5
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 774 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak (na)instalovat javovskou aplikaci?

6.3.2010 18:38 qwertzuiop
Jak (na)instalovat javovskou aplikaci?
Přečteno: 573×
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: 66 | 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: 66 | 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: 45 | 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-Výuka.cz, Nekuřák.net
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.