Jak umieścić wszystkie pliki .class mojego programu w jednym pliku .jar
ŁF
spakuj pliki zipem z kompresją ustawioną na storing, poza tym umieść w archiwum plik
meta-inf/manifest.mf
o zawartości mniej więcej jak ta poniżej:
Manifest-Version: 1.0
Created-By: 1.4.2_02 (Sun Microsystems Inc.)
Main-Class: nazwa_twojej_głównej_klasy
To jest uproszczona wersja...ja polecam zastosowac eclipse->export->jar albo lepiej...anta.
Ant to narzedzie wspomagajace budowanie aplikacji (do nabycia http://ant.apache.org/)
Ponizej znajduje sie prosty buld.xml, ktory przeprowadzi automatycznie caly proces, czyli
-wyczysci strukture katalogow
-przeprowadzi kompilacje
-zbuduje jarka
-usunie zbedne katalogi
<project name="proj"
default="EndCleanUp" >
<property name="dist" location="deploy" />
<property name="bin" location="bin/" />
<property name="src" location="src"/>
<property name="libs" location="lib"/>
<property name="build" location="build"/>
<property name="batch" location="batch"/>
<property name="JARName" value="proj"/>
<target name="clean">
<delete dir="${dist}"/>
<delete dir="${bin}"/>
<delete dir="${build}"/>
</target>
<target name="init" depends="clean">
<mkdir dir="${dist}"/>
<mkdir dir="${bin}"/>
<mkdir dir="${build}"/>
<mkdir dir="${build}/lib"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${bin}" source="1.5" classpath="${libs}/externalLib.jar"/>
</target>
<target name="CopyToBuild" depends="compile">
<copy todir="${build}">
<fileset dir="${bin}"/>
</copy>
<copy todir="${build}/lib">
<fileset dir="${libs}"/>
</copy>
</target>
<target name="CreateJAR" depends="CopyToBuild">
<jar jarfile="${dist}/${JARName}.jar" basedir="${build}">
<manifest>
<attribute name="Class-Path" value="../lib/externalLib.jar"/>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="KlasaStartowa"/>
</manifest>
</jar>
</target>
<target name="EndCleanUp" depends="CreateJAR">
<copy todir="${dist}">
<fileset dir="${batch}"/>
</copy>
<delete dir="${build}"/>
</target>
</project>
komentarze targoetow:
-clean - usuwa katalogi i co za tym idzie pliki w nich znajdujace sie
-init - tworzy strukture katalogow
-compile - kompilacja zrodel
-copyToBuild - kopiowanie plikow ktore maja sie znalezc w jarku, czyli zrodel i jeszcze jednej dodatkowej libki
-createJAR - tworzenie jarka z tego co jest w build
-endcleanup - usuniecie build i skopiowanie na przyklad run.bat czy cos w tym stylu
pozdrawiam i zycze powodzenia w mieszaniu z jarkami
OK to jeszcze tylko wersję mavenową dorzucę wieczorkiem późnym....
Czy to napewno wszystko ?? :)
Marooned: lam pełno wszędzie... 90% jest z Tobą na roku... znam to uczucie :>
jedno co mnie się nie podoba w tym zapisie to zbędność zapisu created by. a po za tym luuuuuz
:]
Ostatnio na zajęciach pół grupy (kilkanaście osób) kłóciło się ze mną, jak twierdziłem, że .jar to zwykłe zipy jeśli chodzi o format. Ale miałem kulankę [rotfl].
I tylko facet pobłażliwie na nich patrzył w milczeniu :]
banda pedałów ;]