log4j hozzáadása a projekthez

0 votes
asked May 20, 2014 in IRF tantárgy by Neupi (25 points)  
retagged May 20, 2014 by cseppento

Hello!

Az lenne a kérdésem, hogy a log4j forráskódját (.java fájlok) vagy elég a .jar fájlokat beletenni a projektbe? A fordító szkriptet ennek függvényében kellene megadnom, ha jól gondolom, hogy eclipse nélkül is leforduljon gond nélkül.

üdv.
Neupi

commented May 20, 2014 by SzB (42 points)  
Szia, Cseppentő Lajostól olvastam tegnap, hogy a lényeg a kényelmesen gyors futtathatóság. Hogy ehhez saját fordító-futtató fájlt írsz, vagy inkább mellékeled a teljes Eclipse projektet (amit utána már csak importálni és használni kell) az már rajtad áll. Csak ne nehezítsük a javítók dolgát azzal, hogy nekik kell szerencsétlenkedni még a rakás paraméterrel is. De majd javítanak ha nem így van.

1 Answer

0 votes
answered May 20, 2014 by cseppento (294 points)  

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.)

commented May 22, 2014 by jozsi (23 points)  
Nekem alapvetően az a probléma hogy mi az a Log4j, és milyen forrás javasolt a megtanulására? Se a felügyeletre tervezéshez tartozó előadás anyag, se a gyakanyag nem említi. A JMX texhnológia az MBeanekkel tulajdonképpen Log4j csak álcázva van? Vagy az teljesen más? Iránymutatásra lenne szükségem ez ügyben.
A választ köszönöm előre is!
...