Az elmúlt időszakban egy kicsit összejöttek a Java-fejlesztéssel kapcsolódó dolgaim. A keretrendszer, amibe éppen fejlesztek, nemrég esett át egy elég durva refactoringon (hogy Eclipse-projekt révén a csomagnevek megfeleljenek az Eclipse elnevezési konvencióinak), és akkor közben megtették még azt is, hogy a legfrissebb változat már csak 6-os Javaval fut.
Ezzel önmagában nem is lenne baj, hiszen ez egy research projekt, nem érdemes régi technológia felett fejleszteni. Szerencsére az Apple nemrég kiadta a Java környezetének hatos változatát (igen, az Apple, és igen, csak most), annak idején már telepítettem is, de valahogy használatba nem került még. Sebaj, az Eclipse futása közben is lehet Java-t váltani. Szal beteszem az új verziót a futtatási konfigurációba, és a puskaport szárazon tartva reménykedek.
Nincs szerencsém: brutális bundle not found kivételeket kaptam, és a hiányzó bundle-ök az eclipse alap moduljai voltak. Kicsit utánaolvasgatva a témákat kiderült, hogy az a gond, hogy az Apple Java 6 megoldása csak Intel-alapú gépen fut, és ott is csak 64 biten. Pontosabban nem is ez a probléma, hanem az, hogy az SWT a Carbon GUI könyvtárat használva jeleníti meg az Eclipse GUI-t. És az Apple döntésének megfelelően a Carbon nincs meg 64 biten, csak 32-n. Azaz ebből az irányból per pillanat nincs győzelem. Fényt mindössze annyi jelent az alagút végén, hogy az SWT-sek megkezdték a Cocoa portot, és az Adobe is biztosított erre a célra egy mérnököt (az Eclipse-technológiára alapozva fejlesztőkörnyezetet akarnak építeni az ismereteim szerint). A Cocoa-port jelenlegi állása szerint csak 32 bites APIt használ a rendszer, de remélhetőleg ez hamarosan változni fog. Talán a 3.5-re meglesz.
De addig is kellene egy megoldás, mert dolgoznom kéne. Egyik ötlet, ami segíthetne, az az Eclipse on Swing projekt lehetne. A céljuk az, hogy az SWT platformfüggő hívásait Swing-alapúra cseréli. Nagyon szép, csak sajnos még az SWT 3.2-es változatánál vannak lemaradva, ami nekem nem felel meg, ugyanis a keretrendszer legalább a 3.3-as Eclipse-et igényli, ugyancsak ez a helyzet a Subversive SVN pluginnel is. Azért kipróbáltam, nem indul be vele az Eclipse Ganymede…
Másik megoldás egy másik JVM lenne, ami nem igényli a 64 bitet. Van is egy ilyen, ami a találó Soylatte névre hallgat. Feltelepítem, beállítom Eclipse JVM-nek. De ekkor kiderül, hogy itt meg az a gond, hogy X11-et használna grafikus felületként, ahogyan meg nem lehet behívni az SWT számára a Carbont…
A helyzet siralmas… Háromféle, egymástól drasztikusan eltérő megoldást kipróbálva jutottam el oda, hogy per pillanat Eclipse pluginfejlesztést nem lehet OSX-en Java 6-on végezni. Siralmas, hogy ezért kénytelen vagyok egy virtuális gépen futó Windows-t használni. Majd figyelem a változásokat, és szükség szerint alátolok valamit a rendszernek. Addig is a remény hal meg utoljára – a sör meg először…