[Java] updaten van client applicatie

Pagina: 1
Acties:

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 22-05 13:07
Hoi :)

voor een project voor school gaan wij client-applicaties maken. Deze halen verder de gegevens uit een centrale db. Allemaal geen probleem, het leukste komt nog.

Wat wij nu ook willen is dat als er updates van de client (de client-applicatie) zijn dat deze kunnen worden gedownload en kunt installeren. Beetje ala windows-update zeg maar.
Het schijnt te kunnen, alleen heb ik zelf geen ideeee hoe :(
Als het even kan moet de app een exe zijn, dus compiled. Hoe kun je dan (gedeeltes) van je app aanpassen. Als het uit losse files (class files) zou bestaan zou je deze evt kunnen overschrijven.

Ik denk dat als je de app start het handig is dat er eerst gekeken wordt of er updates zijn. Zo niet dan start de app en zo ja dan zou je dus update-proces willen starten...

...ik zie alleen door de java bonen het bos niet :?

Verwijderd

Met InstallAnywhere van ZeroG is het mogelijk om installers te maken voor JAVA. Deze maken ook een .exe die jou class-files kunnen starten.

Wat misschien een mogelijkheid is, om de class-files te downloaden, deze te downloaden en de .exe opnieuw aante roepen.

misschien dat het kopieeren niet gaat, want de class-files zijn natuurlijk in gebruik.

Ik ben benieuwd hoe andere hierover denken, ik ben niet echt een expert.

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Misschien heb je wat aan webstart? Dan "installeer" je je applicatie via een linkje en updates zijn dan helemaal simpel.

Trouwens het overschrijven van classes en jars wil niet altijd omdat ze gelocked zijn op windows. Bovendien moet je dan met aparte classloaders werken omdat je anders niet live kan updaten, de oude class blijft dan geladen.

Nog even wat linkjes:

http://java.sun.com/products/javawebstart/
http://www.jgoodies.com/d...skreport/jdiskreport.jnlp

De laatste is een webstart link, kan je zien hoe het werkt.

[ Voor 66% gewijzigd door grhmpf op 28-09-2004 12:13 ]


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Op deze pagina staan 3 links hoe je van je java applicatie een executable kunt maken:
http://onesearch.sun.com/...jsp?col=javanet&qt=native

www.fendt.com | Nikon D7100 | PS5


  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Persoonlijk vind ik het zelf mooier om je applicatie als jar in te pakken en een kleine exe als launcher erbij. Dan hoef je ook niet elke keer exes te builden en kan je gewoon een nieuwe jar aanleveren. Eventueel zou je een tweede "update" applicatie kunnen maken die de jars download en op de juiste plek neer zet.

Dan heb je dus een java launcher nodig die bij het opstarten checkt of er een update is. Zo ja dan download ie de jar, zo nee dan start ie (via reflection) het hoofd programma.

De exe hoef je dan nooit aan te komen want dat is slechts een launcher die niets anders doet dan java opstarten.

Nou genoeg ideeen, aan de slag :P

edit:

http://devwizard.free.fr/html/en/JavaExe.html

[ Voor 6% gewijzigd door grhmpf op 28-09-2004 12:25 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 18:13
Ik vind webstart toch echt een mooiere oplossing (zowel voor de gebruiker als voor de ontwikkelaar) dan de tweede suggestie van grhmpf.

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Ik ook :)

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 22-05 13:07
Het is wel de bedoeling om het als een exe te kunnen starten. Hoe je dat maakt is het probleem niet zo, meer hoe je alles kunt updaten.

Wat, zoals gezegd, zou kunnen is een webstart. Maar dan laad je toch telkens je hele app over het netwerk? Dat heb ik eigenlijk liever niet. Ik namelijk niet waar alles komt te staan en houd dus rekening met een braktrage verbinding.

Via een JAR file zou het ook wel kunnen. Dan heb je een losse exe die niet aangepast hoeft te worden. De JAR file bevat dus feitelijk de hele app. Alleen als je dan een update uitvoert is dat je weer heel de app download ipv alleen wat wijzigingen. Kijk een kleine app maakt niet zoveel uit maar als het een app is van zoveel MB's....

Kun je je app ook uit meerdere JAR's laten bestaan? Dan valt het evt op te delen is stukjes en gaat het laden allemaal sneller :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

TheRebell schreef op 28 september 2004 @ 14:16:
Het is wel de bedoeling om het als een exe te kunnen starten. Hoe je dat maakt is het probleem niet zo, meer hoe je alles kunt updaten.

Wat, zoals gezegd, zou kunnen is een webstart. Maar dan laad je toch telkens je hele app over het netwerk? Dat heb ik eigenlijk liever niet.
Alleen wat nieuw is.
Ik namelijk niet waar alles komt te staan en houd dus rekening met een braktrage verbinding.
Je hebt met webstart geen controle over waar het komt te staan. Het is daarom imho voor een aantal soorten applicaties totaal ongeschikt.
Kun je je app ook uit meerdere JAR's laten bestaan? Dan valt het evt op te delen is stukjes en gaat het laden allemaal sneller :)
Geen probleem.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 22-05 13:07
Alarmnummer schreef op 28 september 2004 @ 14:20:

Je hebt met webstart geen controle over waar het komt te staan. Het is daarom imho voor een aantal soorten applicaties totaal ongeschikt.
Oeps, ik bedoel waar de app fysiek staat bedoel ik, op welke server en waar die server komt te staan. Waar die op je disk komt zal mij een worst wezen :P
Geen probleem.
das heel mooi :)

Je zou dus je app kunnen opdelen, bv per module een JAR file. Dan kun je tijdens het starten van je app kunnen kijken of er wijzigingen zijn en deze kunnen downen.
Of dit een mooie/makkelijke oplossing is, is een andere vraag. Zoals Alarmnummer zegt hoef je dus niet telkens alles te downen bij webstart, hooguit alles wat gewijzigd is.
Zal eens kijken of een webstart maken moeilijk is..... Ik neem aan dat je 'gewoon' je app kunt ontwikkelen dus dat je niet speciale dingen hoeft te doen om webstart te kunnen gebruiken ?

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Het is heel simpel. Je maakt je app, en maakt een jnlp file. Je moet wel zorgen dat je alle jar files signed maar dat is ook heel simpel. Met webstart kan je trouwens best alles in een grote jar zetten van als je de webstart servlet gebruikt dan kan die "jardiffs" serveren aan je client met alleen de verschillen. Je kan het ook opsplitten en "lazy" laten laden. Dat is toch mooi allemaal :) Lees gewoon de docs door daar staat het haarfijn in.

  • TheRebell
  • Registratie: Oktober 2000
  • Laatst online: 22-05 13:07
oei geweldig allemaal. Webstart is idd wel errug handig, zeker met updaten en distributed software. Komt nog bij dat je verder niets hoeft te installeren om het te kunnen draaien (alles wat de app nodig heeft kan ie vanzelf downen)

* TheRebell gaat de docs eens doorlezen en bedankt zijn posters :)

ps: mocht ik nog wat hebben (en niet kunnen vinden ;) ) dan gooi ik het hierzo

[ Voor 14% gewijzigd door TheRebell op 29-09-2004 00:39 ]

Pagina: 1