Azok akik a NetBeans-t használják Linux alatt, bizonyosan szembesültek azokkal az apró de véleményem szerint bosszantó problémákkal, amikkel jó magam is, és gyakran merül fel a kérdés azzal kapcsolatban is, hogy hogyan is kel egyáltalán működésre bírni ezt az eszközt Linux alatt. Arra gondoltam, készítek egy leírást ennek megismerésére, és bemutatnék pár apró konfigurálási lehetőséget, amivel az asztali környezetünkhöz (és a szemünkhöz) szabhatjuk a NetBeans megjelenését.
Nem szeretném elmesélni a NetBeans teljes élettörténetét, de elöljáróban annyit érdemes tudni, hogy a 9-es verziótól a fejlesztése az Oracle-től át került az Apache Software Foundation-höz. E bejegyzés írásának pillanatában a 10-es stabil verziónál tart a projekt.
A NetBeans beszerzése
Ha fellátogatunk a netbeans.org-ra, sok egyéb mellet láthatunk egy nagy Download feliratú gombot, amire ha rákattintunk, a böngésző átirányít minket a projekt új oldalára, ahonnan letölthetjük a NetBeans új verzióját. A NetBeans 10-es verziójához nincs telepítő, mint ami a régebbi verziók esetében volt, így hát egy sima zip archívumot kel letölteni majd kicsomagolni. Keressük meg az incubating-netbeans-10.0-bin.zip fájlhoz való hivatkozást, töltsük le a zip-et, majd csomagoljuk ki (javaslom, hogy simán a saját könyvtárunkba).
A kicsomagolás után kapunk egy netbeans nevű könyvtárat. Itt számunkra két fontos fájl található: a NetBeans konfigurációs fájlja, amit szerkesztenünk kell (~/netbeans/etc/netbeans.conf), és az indításhoz szükséges script (~/netbeans/bin/netbeans).
A NetBeans futtatása, Java beszerzése
A NetBeans futtatásához Java futtatókörnyezetre van szükségünk. A 10-es NetBeans-hez már használható a 11-es Java, aminek van nyílt és zárt verziója is. Én az Oracle-félét használom a NetBeans-hez amit deb csomagként telepítettem, de fut az Ubuntu tárolójában található, openjdk-11-* variánssal is, ezenfelül mind az Oracle-féle JDK, mind a OpenJDK beszerezhető sima zip állományként, amit elég csak kicsomagolnunk, majd közölni a NetBeans-el, hogy hol keresse indulásnál.
Amenyibben már van a gépünkön beállított java futtató környezet, a ~/netbeans/bin/netbeans scriptet futattva, el is indíthatjuk a NetBeans-t. Ha problémába ütközünk és nem indul el, szerkesszük a ~/netbeans/etc/netbeans.conf fájt. Keressük meg az alábbi részt:
# Default location of JDK:
# (set by installer or commented out if launcher should decide)
#
# It can be overridden on command line by using --jdkhome <dir>
# Be careful when changing jdkhome.
# There are two NetBeans launchers for Windows (32-bit and 64-bit) and
# installer points to one of those in the NetBeans application shortcut
# based on the Java version selected at installation time.
#
#netbeans_jdkhome="/path/to/jdk"
És a legutolsó sorban található
#
jelet távolítsuk el a sor elejéről, majd a
/path/to/jdk
részt az idézőjelek között módosítsuk arra az útvonalra, ahol az a JDK található, amivel futtatni szeretnénk a NetBeans-t. Az én esetemben pl. így néz ki ez a sor:
netbeans_jdkhome="/usr/lib/jvm/jdk-11.0.1"
A konfigurációs fájl szerkesztése helyett parancssori kapcsolót is használhatunk pl.:
./netbeans --jdkhome "/usr/lib/jvm/jdk-11.0.1"
Ha mindent jól a csináltunk, és a fenti esetben kompatibilis futtatókörnyezetre hivatkoztunk, akkor el indul a NetBeans.
A kényelem érdekében nem árt ha a rendszerünk alkalmazás menüjében egy ikonos indítót is létrehozunk. Én erre a KDE menüszerkesztőjét használom, GNOME alá menulibre tárolóból telepíthető, vagy lehet kézzel is.
A NetBeans témázása (look and feel)
A NetBeans a Java Swing GUI toolkit-et használja a kezelőfelület megjelenítésére, mely rendelkezik beépített témákkal, illetve használhatja a rendszerünk GTK téma készletét. GNOME alatt az a tapasztalatom, hogy alapértelmezésben a GTK felületet használja, KDE alatt viszont ezt külön be kel állítani ha a GTK-t szeretnénk. A témát a NetBeans beállításai között szabályozhatjuk a Tools/Options/Appearance/Look and Feel alatt, megadhatjuk parancssori opcióként, illetve a netbeans.conf szerkesztésével.
A netbeans.conf tartalmaz egy rakás beállítást az induláshoz. Az ide vonatkozó sor úgy kezdődik, hogy:
netbeans_default_options=...
és valahol elég messze van a vége. A következőkben ha azt írom, hogy "adjuk hozzá a
default options-höz" ezt vagy azt, akkor ez alatt ennek a sornak a bővítését értem. A beállítási opcióknak a már meglévő idézőjel pár között kel szerepelniük, és szóközökkel kel elválasztani őket egymástól.
Én KDE alatt a GTK témakészletet preferálom, mert számomra ez a megfelelő, így az alábbiakban a GTK téma használatát mutatom be de kitérek más témákra is. Adjuk hozzá a default options-höz az alábbi opciót:
--laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Vagy a már említett Tools/Options/Appearance/Look and Feel alatt állítsuk át a megjelenést GTK-ra, ha az utóbbi módszert alkalmazzuk újra kel indítani a NetBeans-t.
A NetBeans wiki oldalán további részleteket találunk a témákkal kapcsolatban: FaqCustomLaf, NBLookAndFeels.
Betűtípusok (fontsize, antialiasing, DPI)
A Swing alkalmazások híresek arról, hogy Linux alatt förtelmesen néznek ki. Ez a NetBeans esetében sincs másként, de sokat lehet javítani a helyzeten pár beállítással.
Az első probléma a betűk csúnya megjelenése. Ennek orvoslására első körben gondoskodjunk róla, hogy a rendszerünkben be legyen kapcsolva a betűk élsimítása. GNOME alatt ez rendszerint megvan alapbol, KDE alatt viszont ez fordítva szokott lenni. A legjobb eredményt úgy érjük el - persze miután az betűk élsimítását bekapcsoltuk, hogy a képpontkorrekció típusát RGB-re, a betűjavítási módot pedig enyhére állítjuk. Ezek után hozzá kel adnunk a default options-höz az alábbi opciókat:
-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=gasp
Egyéb beállítási lehetőségek is vannak az élsimitás kezelésre, nálam a fent említett vált be a legjobban. A NetBeans ide vonatkozó wiki oldala: FaqFontRendering.
A NetBeans kezelőfelületén a betűk helyes méretének beállítása már problémásabb lehet. GNOME alatt ezzel nem igen van probléma, KDE alatt viszont, ha a GTK témát használjuk lehet gond. Ha nem GTK témát használunk, akkor pl.
--fontsize 11
formában állíthatjuk be a betűk méretét a GUI alatt - ez működik GNOME és KDE alatt is, abban az esetben ha nem a GTK téma van beállítva. Ezt a beállítást be írhatjuk a
default options-be, vagy parancssori paraméterként is megadatjuk.
Ha GTK témát használunk a
--fontsize
beállítás nincs hatással a GUI megjelenésére, mivel ez esetben a GTK rendszer beállításokban használt beállítások lesznek alapul véve, tehát ha növelni, vagy csökkenteni akarjuk a betűk méretét, azt az asztali környezetünk rendszerbeállításai között tehetjük meg. KDE alatt a GTK toolkit-et használó programokra külön meg kel adni a betűk méretét, erre a rendszerbeállításokban szintén van lehetőség.
Mivel GTK téma alatt nem tudjuk közvetlen állítani betűk méretét előfordulhat, hogy mégsem ugyan akkorák a betűk a kezelőfelületen, mint más GTK-s alkalmazásokban. Ez nálam KDE alatt volt jelentkező probléma, és annak volt köszönhető ha a rendszeren a betük DPI értékét 96-ra állítottam, de a NetBeans erről nem igen vett tudomást. GNOME alatt a betük DPI értéke rendszerint alapértelmezésben 96. Agyaltam rajta mi lehet a gond, mert világos, hogy a NetBeans a DPI értéket valahonnan máshonnan szedi.
Egy X server beállítás orvosolja ezt a gondot akinél fennáll. Az alábbi paranccsal lekérdezhetjük az aktuális DPI beállítást:
$ xdpyinfo | grep -B2 dots
screen #0:
dimensions: 1920x1080 pixels (508x286 millimeters)
resolution: 96x96 dots per inch
A következő paranccsal beállíthatjuk mi legyen az aktuális DPI:
xrandr --dpi 96x96
Praktikus a fenti parancsot minden rendszer indításnál lefuttatni, erre több lehetőség is van, betehetjük az indítópultba, vagy a /etc/X11/Xsession.d alá rendszergazdai jogosultsággal hozzunk létre egy fájlt pl. 100dpi néven és írjuk bele a xrandr --dpi 96x96 parancsot.
Záró gondolatok
A NetBeans-nek az inkubator projekt előtti legutolsó stabil verziója a 8.2, ami csak a Java 8-as verziójával fut. A GTK téma nagyon rossz a 8-as Javaval, de lehet szépíteni. Ehhez telepítsünk egy ehhez szükséges kis csomagot ubuntu alatt:
sudo apt-get install -y jayatana
Majd adjuk hozzá a default options-hez a következő paramétert:
-J-javaagent:/usr/share/java/jayatanaag.jar
. Unity felület alatt a global menü is működik, a GTK témakezelés szebb.
Ha 8 asnál újabb Javat használunk és GTK alatt kissé szét esik a GUI, ellenőrizzük a default options-ben a
-J-Djdk.gtk.version=2.2
beállítás meglétét, ugyan is ha ez nincs megadva alapértelmezetten GTK3-as témát használ a Swing a megjelenítésre és ezt kézzel kel vissza rakni GTK2-re.
Az Apache égisze alatt remélhetőleg szépen ki pofozzák ezt a jó kis IDE-t, érdemes figyelemmel kísérni, mert várhatóan sűrűbben fognak jönni az új verziók.