SWING app Windows service-ként

Fórumok

Hello,

Készülőben van egy SWING-es app, aminek az elsődleges platformja Windows lenne. Két dolgot szeretnék elérni. Az egyik, hogy becsomagoljam egy lehetőleg minél egyszerűbb telepítőbe. A másik, hogy windows service-ként fusson, amit a telepítő a folyamat végén hozzáad.
Több jelölt is szóbajön, de együtt egyik sem tudja amit szeretnék.
http://launch4j.sourceforge.net/
http://wrapper.tanukisoftware.com

Ti hogy csinálnátok ?
Köszönöm!

Hozzászólások

subscribe

* Én egy indián vagyok. Minden indián hazudik.

Szétszedném egy service és egy UI részre, mert utoljára XP-ben volt a "Szolgáltatás együttműködhet az asztallal" opció (mintha azóta is megtartották volna, csak már nem működne). Wrapper-ek közül meg tetszőleges választható, úgy rémlik az Apache-nak is van valami nyílt cucca rá, de most nem találom.

BlackY

Szet kell bontani, egy service gui nelkul, meg egy service management gui normal alkalmazaskent (taskbarba is rakhatod ha kell)

"Important Services cannot directly interact with a user as of Windows Vista. Therefore, the techniques mentioned in the section titled Using an Interactive Service should not be used in new code."

http://msdn.microsoft.com/en-us/library/ms683502%28v=vs.85%29.aspx

A service-nek igazából annyi a feladata, hogy megnézi adtunk e ki frissítést. Ha igen, akkor feldob egy ablakot, hogy szeretnél e frissíteni. Ha igen, akkor a GUI-t megindítja. Ha nem, akkor alszik a beállított ideig.

Webstarton gondolkoztam, de nem ástam bele magam túlságosan, hogy ez ebben az esetben jó lenne e nekem.
Pl. első körben hogy települ a service adott gépre (ha egyátalán service lesz) ?
Amúgy jól hangzik, hogy mindig a legfrissebb verzió fut az ügyfél gépén, de még nem állt össze a kép.
Ha csak egy standalone GUI-s cuccról lenne, akkor nem is gondolkoznék tovább.

Miért van erre szükség? Tegyük fel, épp szövegszerkesztővel (vagy bármivel, ami nem az az app, amit frissíteni akarsz) dolgozik a munkás, erőst koncentrálva. Erre feljön egy ablak, hogy adtatok ki frissítést. Mi indokolja ezt a figyelemelterelést, ha amúgy nem fut az alkalmazásotok (= épp nincs rá szükség)? Mert ha fut, abból is lehetne ellenőrizni a frissítést... Egyetlen indok jut eszembe a zavarásra: a frissítés lassú, és kritikus fontosságú, hogy a legfrissebb cucc induljon (ha esetleg elindítják). Szóval engem személy szerint az érdekel, miért kell ez egyáltalán, tényleg az általad kívánt formájában a legmegfelelőbb-e.

:)

Okosságot mondtál :)! Röviden vázolnám a helyzetet:
Az app amit frissíteni kell egy Oracle Forms-ban készült bérügyviteli rendszer. A rendszer szempontjából vannak kritikus időszakok amikor két dologra kell figyelni. Az egyik, hogy nem frissíthetünk automatikusan csak felhasználói beavatkozásra, mert akkor esetleg elborítjuk az aktuálisan zajló feldolgozási folyamatot. A másik, hogyha kritikus frissítést adunk ki (elkapáltunk valamit vagy egyéb szempont merül fel), akkor a felhasználó figyelmét _erősen_ fel kell hívni, hogy frissítsen.

A jelenlegi megoldás egy listener, ami feldob egy ablakot. Ebből indultam ki. Maga a forms-os app az elég régi verzió, de azt simán meg tudom oldani, hogy lerántson egy verziószámot és szóljon, hogy van frissítés.
Majd indít egy jvm-et és megvagyunk. Ekkor jöhetne a webstartos verzió a frissítő app-ból.
Most azt gondolom, hogy ezzel egy rakat problémától megszabadulok. Majd nyilván jön helyette más, de most tetszik az ötlet.
Köszönöm!

En maskepp fognam meg a problemat. Maganak a frissitesnek a figyeleset az alkalmazas teljes futasi ideje alatt figyelnem, de a frissitest magat az alkalmazas indulasakor, esetleg loginkor inteznem (ha az alkalmazas frissitett reszeit kesobb is be lehet tolteni). Igy minden frissites lefutna felhasznaloi interakciora (elindul az app), viszont a kritikus frissiteseknel lehet szolni, hogy _most_ mentse a munkajat es _azonnal_ inditsa ujra az appot.

Persze nem tudom, hogy ez Oracle Forms kornyezetben mennyire realis. SWING appnal meg lehet oldani.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.