čtvrtek 22. června 2006

Auto-Install - další krok k použitelnější Jave na desktopu

Zásadní problém s Javou na desktopu je ten, že na klientském počítači musí být již nainstalované JRE. Sekundární problém představuje vlastní distribuce aplikace a její správa, jako např. kontrola požadované verze JRE či aktualizace aplikace v případě novější verze. Sekundární problém se podařilo eliminovat v Jave 5.0 přidaním technologie Java Web Start. Zdá se také, že inženýři ze Sunu našli možný a ne nezajímavý workaround pro řešení toho prvního problému.

Řešení je založeno na prohlížeči, troše JavaScriptu a ActiveX (nutný pouze pro IE) a samozřejmě Java Web Startu. V kostce: uživatel vleze na internetovou stránku, která uděla vše potřebné.

  1. Detekuje jestli existuje v systému JRE
  2. Pokud ano, zjistí jeho verzi
  3. Pokud ne a nebo pokud se nejdná o požadovano uverzi, spustí její instalaci
  4. Po instalaci JRE spustí vlastní aplikaci přes Java Web Start

Detailněji to ilustruje následující obrázek s popisem.


(linkováno z http://java.sun.com/developer/technicalArticles/JavaLP/javawebstart/AutoInstall.html)

  1. Stránka se načte a detekuje typ prohlížeče
  2. Prohlížeč je Internet Explorer na Windows
    1. Spustí se Auto-Install ActiveX komponenta (může výžadovat potvrzení od uživatele)
      1. Detekuje JRE a jeho verzi
      2. Pokud je potřeba nainstaluje se JRE požadované verze
      3. Spustí vlastní aplikaci přes JNLP
  3. Jiný typ prohlížeče
    1. JavaScript detekuje JRE a jeho verzi
    2. Pokud je potřeba, otevře nové okno s online instalací JRE
    3. Čeká ve smyčce dokud se JRE nenainstaluje
    4. Spustí vlastní aplikaci přes JNLP

Kompletní popis včetně zdrojových kódů najdete na Sun Developer Network v článku Auto-Install: Easier Launching of Java Web Start Applications.

Pár slov závěrem. Schválně jsem tento postup označil za workaround a ne za řešení, protože má několik slabin. První slabina je nutnost zapnuté podpory ActiveX v IE a povolení jejího aktivního využívání a to ne všichni uživatelé museji mít. Další nevýhoda (vypnutý JavaScript se nepočítá) je uživatelova interakce nutná pro instalaci JRE v případě jiného typu prohlížeče. Na druhou stranu, slovy klasika lepší než drátem do oka.

Docela by mě zajímalo jak se Vám tento postup zamlouvá?