[java] bij een applet de inhoud van de JAR file weer geven

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo mensen ik ben momenteel bezig met een applet.

Deze zit samen met een aantal configuratie bestanden en plaatjes etc verpakt in een JAR file.
Nu wil ik een map van deze JAR uit kunnen lezen welke bestanden er aanwezig zijn.
Stel je voor dat er een config map is waar een aantal bestanden in kunnen staan.
Ik wil deze bestanden dan in een drop-down box kunnen weergeven voor de gebruiker.

Het hele probleem is dat er bestanden toegevoegd en verwijdert kunnen worden binnen deze JAR file. dus het hardcoden van deze bestanden is geen optie.
Nog een probleem zit um er in dat ik mijn applet eigenlijk niet wil signen.

Ik heb wel al wat gevonden op internet maar dit maakt gebruik van de gecashde jar file en moet dus met JarFile ge-opend worden. Dit resulteerd in mijn applet in een security exception.
Dit komt natuurlijk omdat mijn applet niet gesigned is.

Heeft iemand op dit forum ervaring op dit gebied?

Of moet ik gaan zoeken naar een andere (minder elegante) oplossing?

met vriendelijke groet,

Cyclonite

Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Je moet alles via de classloader laten lopen. Ik zie dat Spring een class bevat die dit volgens mij op de juiste manier doet (staat gelinked onderaan het artikel dat je gebruikt): via een JarURLConnection.

Een andere optie is bij het inpakken van de jar ergens op een vaste plek een filetje met een "directorylisting" genereren, die in je applicatie uitlezen en de gebruiker daar uit laten kiezen. Dan verplaats je het probleem naar je build proces en kun je "gewoon" classLoader.getResource() gebruiken.

[ Voor 188% gewijzigd door Herko_ter_Horst op 04-05-2010 13:18 ]

"Any sufficiently advanced technology is indistinguishable from magic."


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Even theoretisch gesproken.

Stel je voor dat ik mijn config files, plaatjes etc in een apparte JAR zou verpakken en deze JAR met een vaste naam zou inpakken in de Applet JAR.
Zou ik dan deze JAR wel kunnen openen met JarFile aangezien deze file zich dan binnen de huidige omgeving bevind?

Anders is denk ik je 2e optie de beste oplossing voor me.

Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Jar (of ZIP, jar is niets anders dan een ZIP file met een manifest) in de applet jar: ja, dat zou moeten werken. Niet met JarFile, maar wel met JarInputStream (danwel ZipInputStream).

Als de code weinig verandert en de config/plaatjes vaker, dan kun die jar/zip zelfs apart op je server zetten, naast de applet jar. Dan kun je vanuit je applet een HttpURLConnection maken naar die zip en van daaruit lezen (een applet mag binnen de sandbox connecties maken naar dezelfde server als waar de applet zelf vandaan komt).

"Any sufficiently advanced technology is indistinguishable from magic."


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat lijkt me idd ook een mooie oplossing.
Ik denk dat die contructie de meest schone code oplevert.

Nu ik toch een klein topicje open heb over applets binnen de sandbox.
Ik wil in dezelfde applicatie als het ware een configuratie maken voor een apparaat van ons.
De klant moet via de applet een configuratie kunnen samen stellen en de applet zal dan een configuratie file genereren.

Is het mogelijk voor een applet om direct naar de browser een bestand te sturen (net zoals een webserver dat zou doen) wellicht met een stukje AJAX erbij uiteraard.