Hvordan inkluderer man filer i en .jar?

Tags:    java jar

Hej!

Når jeg skal bruge filer i mine programmer, som jeg exportere fra Eclipse som .jar virker programmerne ikke hvis de skal modtage input eller programmet skal bruge et billede som jeg har liggende i f.eks en mappe der hedder "res" i Eclipse projektet. Jeg skal lave en mappe hvor jeg putter min jar ind og så alle billederne skal også puttes ind.. Eller også laver jeg en anden mappe inde i den mappe hvor jeg har lagt min .jar, men det er også ligemeget..

- Der må være en måde hvorpå man kan "inkludere" billeder, filer osv i sin .jar?

Tak på forhånd!



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Det er muligt at inkluderer billeder i selve sin .jar fil.
Dog er det også muligt at have en mappe ved siden af sin jar fil, hvor billederne ligger, eller at lade billederne ligge direkte ved siden af .jar filen.

Hvis man vil inkluderer billeder i sin .jar fil finder jeg det nemmest, at man selv kontrollerer, hvordan sin .jar fil skal laves.
Denne kan man lave igennem en terminal, ligesom man normalt benytter sig af "javac" kommandoen til at kompile sin java kode. Koden man kan bruge til at lave sine egne .jar filer er:

jar cfm Calculator.jar Manifest.txt *

Dette har den fordel, at hvis man laver sin Manifest fil, korrekt, så får man en runable .jar fil ud af det også :)

mere omkring denne metode, kan læses i nederst i denne tutorial: http://www.udvikleren.dk/artikler/363/java-gui%28swing%29-2.del/

Når man nu har lagt sine filer ind i sin .jar fil, skal man gøre noget lidt specielt for at loade dem:

new javax.swing.ImageIcon(getClass().getResource("mitbillede.jpeg"))

Dette gør dog også, at man både kan deploy sit program, både som en runable .jar fil, men også relativt let som en java applet, hvis man skulle få lyst til det :)





Du skal selv lave en manifest fil, der skal ligge i samme mappe, som dine andre filer. Denne manifest fil, skal indeholde følgende:

" Main-Class: Frame
"

Hvor main-class er hvilken klasse din main metode ligger i.

Hvis det er din Window klasse, der indeholder din main metode skal du skrive:

" Main-Class: Window
"


PS. Anførelsestegne skal ikke skrives :)



Har lige sat mine miljøvariabler så jeg kan compile fra CMD... - Jeg kan køre "javac Window.java", men når jeg så prøver "java Window", så får jeg følgende fejl: "Error: Could not find or load main class Window", - selv om det virkede fint da jeg brugte javac...

Nå, men prøvede at se om jeg alligevel ikke kunne gøre det, selvom jeg bare ikke kunne køre programmet.. Så jeg skrev kommandoen "jar cfm Window.jar Manifest.txt *" og fik følgende fejl:
Fold kodeboks ind/udKode 





t