Azzal, hogy csatolod a projektfájlokat, már fordítható egyszerűen (tehát ha valaki megnyitja Eclipse-ben megy). A futtatószkript meg egy .bat/.sh ami megfelelő paraméterezéssel elindítja a programot (esetleg bekérheti a paramétereket).
Fordítószkriptért se kell messzire menni, elég sok leírás/kérdésre válasz született az elmúlt évek során, neten fellelhető. A külső könyvtárat (esetedben log4j-t) simán Eclipse-ben csatold. Nem kell a forrásfájlokat leszedni, sőt ez nem isEgyé célszerű (valamint gyakran a licensz ezt nem engedi). Mikor indítod a te programot, a Java Classpath-ban fel van sorolva az összes használt függőség (Java Classpath kb.: a Java itt keresi az osztályokat). Fordításkor három gyakori lehetőség van:
- Futtatáskor is megadjuk, hogy a könyvtárat hol találja (classpath)
- Beletesszük a könyvtárat a JAR-ba, és a MANIFEST.MF-ben megadjuk, hogy a JAR-on belül milyen könyvtárak kellenek még (megint classpath)
- JAR-ból kicsomagoljuk a binárisokat (.class) és belerakjuk a mi binárisaink mellé (nem mindegyik függőség licensze engedi)
Az Eclipse mindhárom módszerrel tud JAR-t készíteni, a grafikus ezek megadhatók.
Ha valakit érdekel, érdemes ún. build tool-okat használni. Ezt a póthét tekintetében csak akkor javaslom, ha van rá +1 órátok ezzel szórakozni, érdekes, de enélkül is lehet maxpontos egy házi. Kettőt tudok javasolni, persze sok van. Az Ant segítségével (van Eclipse támogatás) build feladatokat lehet megadni, ilyen lehet pl. hogy csináljon JAR-t, és mondjuk egy egyszerű "ant" vagy "ant build" parancs segítségével futtatható az egész. A másik elterjedt a Maven (ehhez is van Eclipse támogatás), ami nem csak a fordítást segíti, hanem elvégzi a dependecy management-et is. Ez alatt azt kell érteni, hogy a konfigurációs fájlba (pom.xml) felvesszük a függőséget (pontos verzióval), tudjuk használni, nem kell letölteni és nekünk berakni. A "mvn clean install" parancs segítségével töröljük a korábbi fordítási kimenetet és elkészíti a JAR-t. Ha bele is szeretnétek integrálni a függőségeket, arra viszont több megoldás is van, és van olyan ami nem működik. Én a "maven-assembly-plugin"-nek a ""java-with-dependencies" "funkcióját" javaslom, ezt használtam már többször, jól működik.
(Egyébként javasolt a Google használata, mindenhez van rengeteg tutorial/howto. Természetesen nem kötelező az Eclipse használata, valószínűleg a többi korszerű fejlesztőeszköz is támogatja a fenti dolgokat, mivel ezek igen elterjedtek.)