Java webapp egy darab exe-ben?

Úgy alakult, hogy jó lenne, ha tudnék egy darab installert előállítani, ami "telepít" egy Tomcatet, MySQL-t, deployolja az elkészített war-file-t, stb. Szóval egy kulcsra kész webappot tud localhostra varázsolni baromi egyszerűen.

Van erre valami megoldás?

Hozzászólások

Csinálj kicsi VMWare gépet és azt az image-et terjeszt, VMPlayer / VirtualBox lejátszák és egyben marad az egész, mintsem szétinstallálod a gépet.

Attól, hogy neked nem tetszik, az egy darab Access DB még jó megoldás lehet :-P De fogod, összerakod xampp-ben a cumót, becsomagolod, megnézed, mit rámolt a registry-be, azt is mellérakod, csinálsz egy tetszőleges telepítőkészítővel egy csomagot, amit katt-katt, és ott van a cucc.

Windowsra? (mert ezt nem írtad).
Egyébként van egy csomó installer készítő keretrendszer windowsra, az alá az egész kupacot be tudod tolni. A legfogósabb része a "service", azaz pl. a mysql elindítása bootkor. Nem pazarlás amúgy a teljes tomcat, mysql futtatása egy kliensgépen?

--
Gábriel Ákos
http://i-logic.hu

Azért kézzel felmásolni egy másik szoftver fájljait elég őrült dolog. Ha a mysql telepítője tud silent install módot, akkor avval kell indítani. Ha nem, akkor az open source verzió telepítőjébe bele kell ezt építeni. Én pl. a smartmontools-szal játszottam ezt el, örültek a patch-emnek, én meg szépen be tudtam tenni az SW deploy rendszerbe.

--
joco voltam szevasz

A kérdező ezt kérdezte :)
És ha tesztelt működő verziót akar kiadni, akkor azt valóban úgy kell, hogy egy bizonyos verziót odarak, nem pedig bármit letölt a user.
Amivel szépen el lehet játszani (nem szoktak) hogy ki melyik portot foglalja el és erről hogyan tudjon a többi komponens, mert ugye nem kizárható, hogy az ember gépén már pont a kiszemelt porton figyel valami.

--
Gábriel Ákos
http://i-logic.hu

Windowsra keresek valamit, igen:) Azt hittem, hogy erre már van valami out-of-the-box megoldás, hiszen XAMPP pl, van már (nem telepítve, hanem egyáltalán létezik egy ilyen telepítő), innentől már csak egy lépés egy customizált környezet létrehozása, amibe csak a war-t kell beletolni (gondolom).

Gondolkoztam a XAMPP-os verzión is, de ott is sokat kell ugye konfigurálgatni, szóval ez se játszik.

Egyébként a bootoláskori service indulás se feltétlenül igény, hiszen alapvetően az én lustaságom az, amiért feltettem ezt a kérdést, ti.: barátnőmnek el kéne készítenie egy baromi egyszerű Access adatbázist, ami amúgy oké is, de nekem nagyon nem tetszik, meg nehézkes, meg minden baj van vele, úgyhogy felajánlottam, hogy Spring Roo-val összedobok egy webappot rá pillanatok alatt (jól jön a gyakorlás). Viszont innentől kezdve vagy felteszik egy online host-hoz, amit nem biztos, hogy akarnak egy lokális adatbázisnál, illetve fizetni is kell érte, vagy valahogy tudok tetszőleges Windowsos gépre két kattintással deployolni.

Szóval az, hogy rá kell kattintaniuk egy parancsikonra, ami elindítja a service-t és esetleg feldobja az oldalt a default böngészőben még talán jó is, nem kell URL-eket megjegyezgetniük.

Fura, hogy pont erre nincs triviális megoldás a webappok korában:)

Az is egy lehetseges megoldas, hogy beagyazott tomcatet meg valami lightweight sql megoldast hasznalsz, az egeszet becsomagolod jar-ba. Jar-okra mar vannak toolok amik tudnak exe-t kesziteni beloluk (bar nyilvanvaloan a javanak telepitve kell lennie a gepre.) En szemely szerint tomcat helyett jetty-t hasznalnek, mysql helyett h2db-t.

Jar to exe: http://stackoverflow.com/questions/2011664/compiling-a-java-program-int…
Jetty: http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
H2DB: http://www.h2database.com/html/main.html

Nálunk a PM-eknek van egy install.cmd.

A működés előfeltétele, hogy lokálisan legyen feltelepítve egy adatbázis, vagy a belsőn hálóról adjunk meg egyet.

Ezek után az install.cmd a következőket tudja:

- CVS-ből kicheckeli a porjektet
- JBoss-t lehúzza a belső hálóról
- meghívja a megfelelő ant scripteket amik:

- adatbázisba létrehozzák a usert, betöltik a migrációkat
- deployolják a projektet JBoss alá

- ezek után a JBoss run.bat parancsával indul a szerver

Nézd meg a jenkinst, hogy oldja meg az Executable WAR-ját.

Gyakorlatilag java -jar jenkins.war -ral futtatható.

Ha nem ragaszkodsz mysqlhez, akkor egy embedded java db-vel gond nélkül meg tudod oldani amit szeretnél. Tomcat helyett winstone van jenkinsben, de pl. jettyt sem ördöngősség beágyazni, ha a winstone nem elég jó.

Üdv,
Gergely

A Java redistribute-olható elvileg. Tehát meg tudod azt csinálni, hogy mindent, ami az alkalmazásod futtatásához kell, azt egybe csomagolod. Így nem kell semminek másmilyennek lenni, mint a fejlesztői gépeden. Ennek persze ára lesz az, hogy nagyon nagy lesz az alkalmazásodat terjesztő csomag, viszont nagyon kevés munkával összerakható. Kis szériánál és toleráns felhasználónál éri meg.