22. maj 2006 - 17:54Der er
24 kommentarer og 2 løsninger
gif-filer indenfor i en jar-fil
Jeg er ved at lægge sidste hånd på et projekt, som snart skal afleveres. Alt er faktisk på plads, men der mangler lige dét.
I mit projekt benytter jeg et antal gif-filer, og disse ligger pt. på harddisken. Dette virker, men... Jeg vil gerne have dem indenfor i jar-filen, som en ressource, sådan at det færdige program kan gives videre som en selvstændig jar-fil.
Hvordan gøres dette egentlig? Der skal vel kodes noget, og så skal projektet vel også sættes op til det. Jeg bruger JBuilder.
Min gif-fil bruges af forskellige klasser i applikationen. Jeg har derfor indkapslet gif-håndteringen i en egen klasse som så bruges rundt omkring.
Min klasse, GifRessource arver ikke fra andet end Object og den har derfor ikke defineret nogen funktion som hedder getClass(). Hvis jeg selv skulle skrive sådan en metode, hvordan skulle det så se ud kodemæssigt?
Ok, jeg tror da i det mindste at jeg er på rigtig vej :^)
Hvor er det smarteste at lægge gif-filerne i projektets filstruktur? Foreløbig har jeg lagt dem i et gif-bibliotek, som ligger side-om-side med src-, classes- og doc-bibliotekerne. Men er det bedre at lægge gif-biblioteket ind som et underbibliotek af src, eller måske af classes-biblioteket?
du boer bruge packages (du bruger vel ogsaa namespaces i C# ?)
----------
getRessource(0 henter fra classpath d.v.s. at du skal: 1) bede JBuilder pakke filerne med ned i jar filen for at de kan bruges i test/production 2) have det dir i classpath for JBuilder saa du kan teste under udvikling
----------
Jeg ville foele det fristende at have et image dir helt oppe paa niveau med src og build, men det er formentligt fordi jeg taenker mere ant end IDE
- bare ikke acceptere. Der kommer ingen fejl, eller exceptions, men billedet er blank.
Det der "file:/" i starten af strengen ser jo uskyldigt ud - det angiver bare at der er tale om en fil. Men nej, det er det ikke, for hvis jeg fjerner det med:
Så, mit spørgsmål er nu: Hvorfor kommer det "file:/" og hvad er den rigtige fremgangsmåde til at løse problemet med at billederne ikke vises? Jeg synes ikke umiddelbart at løsningen med substring(6) virker som om at det er den rigtige.
- og så er der ikke noget kode som - for mig i hvert fald - ser nær så klamphukket ud som at bruge en substring().
Et sidste spørgsmål, inden at jeg lukker denne her: Da jeg oprindeligt skrev klassen GifResource, startede jeg med at loade alle gifferne til memory (gemt i et HashMap<xxx, Image>). Pointen med det var at forhindre at der blev læst fra disk hver gang at jeg brugte et billede.
Når man brugere en resource i stedet, hvad sker der så? Vil den læse fra jar-filen, som ligger på disken, eller vil den hente billederne i jar-filen, som bliver loadet til memory når jeg starter programmet?
Jeg undskylder meget, når jeg gennemlæser tråden igen kan jeg se at jeg udelukkende har mig selv at takke for at der sneg sig fejl ind undervejs. :^| *blush*
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.