Sziasztok!
Fejlesztői környezetek témában szeretnék beszélni ebben a postban, ugyanis a fejlesztő számára az IDE legalább olyan fontos, mint a kávé vagy a pizza. :D
Komolyra fordítva a szót, bizonyára mindenki találkozott már különböző parancssori fordító eszközökkel, melyek segítségével az általunk megadott forrásfájlokból futtatható állományokat készíthetünk (adott már ki javac vagy g++ parancsot).
Bár ezen eszközök ismerete hasznos tudással vértezhet fel minket (hogy is működik a linker? miért kapok „unresolved externals” hibákat?), a fejlesztők mindennapi életére nem jellemző, hogy a java programokat egy egyszerű szövegszerkesztővel készítik, majd parancssorban fordítják. Ehelyett fejlesztői környezeteket (Integrated Development Environment – IDE) használnak.
Ennek számos oka van (közöttük a személyes preferencia is fontos szerepet játszik), de egy külön fejlesztési célokra kialakított IDE-nek számos előnye van az egyszerű szövegszerkesztő programokkal (vi, nano, notepad) szemben: a szintaxis kezelésén keresztül a hibák és azok helyének jelzése, modulok kezelése, fordító eszközök integrálása stb.
Aki nem használ IDE-t, az IDE-tlen.
A fellelhető IDE-k száma igen magas, hogy csak egy párat említsünk: Netbeans, Idea, JDeveloper, Eclipse. Ebben a posztban (és az ezt követőkben) elsősorban utóbbira fogok koncentrálni. Mivel az eclipse IDE egy elég nagy témakör, így most csak néhány dolgot nézünk át, hogy elinduljunk az eclipse-t használó fejlesztők útján.
Eclipse-ről
Az Eclipse egy Java alapú keretrendszer, melynek az IDE csupán egy kis része – most azonban koncentráljunk erre (amennyiben érdekel, hogy mit rejt magában az Eclipse, látogass el a
http://projects.eclipse.org/list-of-projects
oldalra). Elsősorban Java alapú alkalmazások fejlesztésére használják, így az alapból integrált eszközök is nagyrészt ezt segítik elő (természetesen több „előre szerelt” Eclipse verzió létezik, megtalálható C++, PHP, Python stb. fejlesztésre optimalizált IDE is.).
Ahogy azt az előbb is említettem, az Eclipse Java alapokon fekszik – futtatásához tehát elengedhetetlenül szükséges egy Java futtató környezet (Java Runtime Environment – JRE). Ennek beszerzését az olvasóra bízom, mindössze annyit jegyeznék meg, hogy ne OpenJDK-t használjunk, hanem szerezzük be az Oracle Java implementációját.
Telepítés
Ha már rendelkezünk JRE-vel, akkor már csak magát az IDE-t kell beszereznünk. Hagyományos értelmemben véve nem kell telepítenünk, mindössze a
https://www.eclipse.org/downloads/packages/eclipse-standard-44/lunar
oldalról töltsük le a nekünk megfelelő Eclipse verziót, csomagoljuk ki a tömörített mappát egy általunk választott helyre, és már használhatjuk is (fontos, hogy az operációs rendszerünknek megfelelő változatot töltsük le).
A workspace-ekről
Az első indításkor fel fog ugrani egy ablak, amiben meg kell adnunk, hol legyen a „workspace”. De mi is ez, miért jó nekünk?
A workspace az Eclipse konfigurációs állományait, a projekteket és az ezekről tárolt információkat foglalja magába. Természetesen több workspace-t is létrehozhatunk, fizikailag is elválasztva ezzel a különböző beállításokat – ez a szeparáció egyrészt megkönnyíti az egyes fejlesztői projektek szétválasztását, valamint nagyon egyszerűen tudunk felhasználói beállításokat átvinni egy Eclipse példányból egy másikba (pl. új Eclipse verzióra váltáskor).
Workspace-ek között váltani/újat megadni a
„File → Switch Workspace…”
menüpont alatt lehet.
Projektek és working setek
Egy különálló Java programnak megfelelő logikai egység a projekt. Projektjeinket az Eclipse segítségével working set-ekbe rendezhetjük, tovább segítve azok rendszerezését.
Hozzunk létre egy új Java projektet! Ehhez látogassunk el a
„File → New → Java project”
menüponthoz, majd haladjunk végig a varázslón.
Automatikus kódkiegészítés, kódgenerálás
Nagyban megkönnyíti egy programozó életét, ha nem minden egyes karaktert saját kezűleg kell begépelnie, ezért lehetőség van bizonyos kódrészletek automatikus generálására. Nézzük meg például egy Java osztály létrehozását! Ehhez nem kell mást tennünk, mint a korábban elkészített projektünk megnyitása után a
„File → New → Class”
menüpontot válasszuk.
A létrehozott osztály kódja a varázslóban megadottak szerint alakul; az esetlegesen megadott interface-ekből származó és a külön hozzáadott metódusok törzse is legenerálódik, ha a varászlóban ezt a lehetőséget is kiválasztjuk.
Egy IDE nagy előnye egy egyszerű szövegszerkesztőhöz képest az, hogy kifejezetten programok írásához szabták, és segíti is a programozót a forráskód megírásában. Talán a leghasznosabb funkció az automatikus kódkiegészítés: csak el kell kezdenünk begépelni valamit, majd egy CTRL + SPACE lenyomására már ajánlja is fel nekünk a fejlesztői környezet a lehetőségeket, hogy mit is akarhatunk éppen begépelni.
Fordítás
Természetesen az elkészített kódból futtatható programot szeretnénk csinálni – a kódot le kell fordítanunk. Más-más programokhoz más-más fordító környezet szükséges.
Tegyük fel, hogy gépünkön több JDK (Java Development Kit) verzió is található (1.6, 1.7, 1.8, mindegyikből 32- és 64-bites…), és szeretnénk mindig a nekünk az aktuális fejlesztési projekthez legmegfelelőbbet használni. Ehhez természetesen valahogyan az Eclipse tudtára kell adnunk, hogy hol találhatóak ezek a JDK-k.
Ehhez csupán az IDE által ismert JDK-k listájához kell hozzáadnunk az általunk használni kívánt fordítót, és máris mehet a móka. Hozzáadni a „Preferences → Java → Installed JREs” menüpont alatt lehet (a varázslóban válasszuk a „Standard VM” opciót, majd adjuk meg az elérési utat; a többit elintézi nekünk az Eclipse).
Az Eclipse-be integrált fordító eszközök az alapértelmezetten kiválasztott fordító környezetet fogják ezek után használni. A kód újrafordítását állíthatjuk automatikusra („Project → Build Automatically” – minden mentett változtatás után fordít), de kézzel is elindítható a programok buildelése (nagyobb projekteknél ez sokkal optimálisabb).
Próbáljunk meg beszerezni 1.5-ös Java fordítókörnyezetet, majd adjuk hozzá az Eclipse-ünkhöz.
Projektek importálása, exportálása
Fejlesztői környezetünkből könnyen tudunk projekteket, beállításokat stb. kimenteni, illetve újra betölteni. Ez főleg a projektek esetén hasznos, hiszen egyrészt nem mindig az elejétől veszünk részt egy szoftver fejlesztésében, valamint általában nem is egyedül dolgozunk rajta, így fontos, hogy könnyen be tudjuk tölteni a kód már elkészült részét (a hozzá tartozó egyéb állományokkal együtt).
Ehhez nem kell mást tennünk, mint a „Pacakge Explorer” ablakban (a képernyő jobb oldala) jobb kattintás után kiválasztani az „Import…” opciót, majd megadni a nekünk megfelelő projekt/beállítás típust, és kikeresni betölteni kívánt projekt/konfiguráció elérési útját.
Az Eclipse támogatja az egymásba ágyazott projektet felderítését is, így importálás során elegendő a projektek gyökér mappáját megadni, és kiválasztani, hogy rekurzívan derítse fel a megadott mappát – a többit elvégzi helyettünk az IDE.
Importáljunk most egy megfelelően nagy projektet – töltsük le a http://sourceforge.net/projects/jasperreports/files/archive/jasperreports/JasperReports%203.7.5/jasperreports-3.7.5-project.zip/download jasperreports kódját, majd importáljuk be az egyik workspace-ünkbe (File → import… → General → Existing Projects into Workspace).
Gyorsbillentyű, automatikus kódkiegészítés
Az importálás után próbáljuk meg felfedezni az importált projekteket. Próbáljuk meg előkeresni a ColorPropertyRule.java osztályt. Ne lepődjünk meg, ha nagyon nehezen megy – ekkora kódbázis esetén nem olyan egyszerű a klasszikus fájlok közötti navigáció (még azok számára sem, akik „ismerik” a projektet: túl nagy, hogy mindenről tudjuk, hogy hol van benne).
A forráskódon belüli navigációt is kényelmesebbé teszi az Eclipse – ha pl. egy adott osztály forráskódjára lennénk kíváncsiak, elegendő a CTRL + SHIFT + T kombinációt megnyomnunk, és kikeresnünk az adott osztályt. Ugyanerre létezik egy másik módszer is, amennyiben az éppen megtekintett kódban található a típus, amit keresünk: csupán az osztály nevére kell kattintani a CTRL lenyomása közben, és máris láthatjuk a hozzá tartozó forrásállományt (amennyiben elérhető – előfordulhat, hogy egy JAR-ból származik az osztály és csak bináris állomány található hozzá). Ha megtaláltuk a ColorPropertyRule osztályt, akkor teszteljük az utóbbi kombinációt, hogy működik-e: Nézzük meg a ColorPropertyRule osztály ősosztályának a forrását.
Az eclipse egy elég sokrétű eszköz, sok-sok tudással bír. Így a továbbiakban beszélünk néhány érdekesebbnek vélt funkciójáról, a hatékony fejlesztés tükrében.

