Gyakorlati alapok I.
Futtatási problémák
Az informatika egyik nagy programozás-technikai mumusa a nyílt vagy rejtett kompatibilitási hibák jelenléte. Ezen hibák leggyakoribb környezetei:
-
a különböző operációs rendszerek közötti ütközések,
-
32 és 64 bites memóriacímzés közti ütközések,
-
különböző karakterkódolások ütközései,
-
látszólag azonos funkciójú, mégis különböző módon megírt programok ütközései,
-
az alkalmazásszintű program és az operációs rendszer ütközései,
-
illetve a fentiek színes variációi.
A módszertan fontos pedagógiai alapját képezi, hogy (elméletileg) a HTML-oldalról kimásolt Java-kód...
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Végeredmény:
Hello World!
...a megfelelően feltelepített és bekonfigurált Eclipse Luna platformba bemásolva azonnal futtatható, ezáltal ellenőrizhető. Ez az esetek döntő többségében működőképes, de sajnos nem 100 %-osan.
1. példa
Néha előfordulhat, hogy HTML vagy MS Word programból való másoláskor olyan karakterek is belekerülnek a kódba, amelyeket az Eclipse hibaként értékel. Ezek általában belső, láthatatlan, szövegformázó karakterek. Ilyen esetekben nem is futtatható a kód, hanem a kérdéses karakterek alatt kis piros hullámjelek, valamint fordítási hibajelző x látható:
Megszüntetésük egyszerű: jelöljük ki a hiba helyét és a SPACE billentyűvel tegyünk helyükre whitespace karaktert vagy egyszerűen töröljük ki.
2. példa
A fenti példa is azt bizonyítja, hogy például az MS Word és az Eclipse formázási utasításai bár sok esetben hasonlóak, de nem azonosak. Így fordulhat elő, hogy MS Word-ben sortöréssel formázott System.out.println() kiírást...
...garantáltan hibaként értékeli. A megoldás, hogy megszüntetjük a sortörést, vagy egy + jellel és kettős aposztrófokkal illesztjük be a hibás sztringet.
Ezenfelül azonban sajnos szinte bárhol és bármikor felmerülhet kisebb-nagyobb kompatibilitási probléma vagy olyan jellegű hiba, amelynek még a jellegét sem tudjuk megállapítani.
Például: Java-programozás során én látszólag 2 hasonló hardver-architektúrájú és azonosnak tűnő szoftver-architektúrájú számítógépet használok (egy laptop és egy asztali gép, mindkettő 64 bites Win7). Hasonlóságuk ellenére sem fut az Eclipse ugyanúgy a 2 gépen, sőt eleddig minden olyan próbálkozásom kudarcba fulladt, amely teljesen azonos futási környezeteket igyekezett teremteni (holott az Eclipse ezt alapértelmezésben felkínálja).