![]() |
![]() |
|
02121 Ingeniørarbejde - Softwareteknologi Januar 2010 |
Generering af jar-filer |
Filtypen .jar er Javas eget format til kompakt sammenbundtning af et antal filer - typisk alle filer der hører til et Java program eller alle filer i et klasse-bibliotek. Der kan være tale om både Java-filer med kildetekst, oversatte klassefiler og andre filer, fx. billeder og konfigurationsfiler.
En jar-fil er faktisk en zip-fil, men med visse særlige konventioner. Fx. kan en jar-fil indeholde en såkaldt manifest-fil, der fortæller, hvilken klasse, der udgør hovedklassen (dvs. hvis main-metode skal kaldes initielt).
Jar-filer skabes og læses med kommandoen jar, hvis syntaks og options for en del er arvet fra den klassiske Unix-kommando tar (tape archive).
Eclipse har en guide, der hjælper med at eksportere filer fra et projekt til en jar-fil. Her er en kort beskrivelse af de nogle vigtigste punkter i denne proces:
Export generated class files and resources
Export java source files and resources
[Bemærk at output-kataloget hvor klassefilerne ligger (typisk bin) ikke optræder eksplicit.]
Husk at markere evt. kataloger med filer, billeder osv. Se mere om tilgangen til sådanne ressourcer her.
Vælge passende destination og navn for jar-filen.
Af Options bør kun Compress the contents of the JAR file være markeret.
Undlad at trykke Finish endnu, men gå videre til næste skærmbillede.
Export class files with compile warnings
java -classpath . Main [Bemærk punktummet efter -classpath]hvor Main er det fuldt kvalificerede navn på den klasse, der starter jeres værktøj. Hvis fx hovedklassen hedder Tool og ligger i pakke-kataloget xyz under rod-kataloget, skal Main angives til xyz.Tool (uden .java eller .class).
Main-Class: Mainhvor Main er navnet på hovedklassen som beskrevet ovenfor.
Det er vigtigt at linien afsluttes med et linieskift.
jar cvmf maininfo.txt name.jar *hvor maininfo.txt er ovennævnte fil og name er er det ønskede navn. Dette skaber en jar-fil med navnet name.jar indholdende alle filer i rod-kataloget incl. underkataloger og deres indhold. (Se evt. en forklaring af parametrene i beskrivelsen af jar-kommandoen.