HowTo:Ako preložiť java program
Z Java.betlista.net
Pri písaní java programov používam Eclipse. Niekedy však, z rôznych dôvodov, nie je možné mať taký komfort (napr. sme na stroji, kde nie sú okná - napr. linux/unix server, kde nie je X server, alebo je potrebný iba drobný zásah, ktorý sa dá urobiť aj pomocou textového editoru a nie je preto nutné sťahovať 80MB z internetu) a preto sem napíšem niečo o tom, ako preložiť .java súbory (zdrojový kód java programu) na .class súbory (spustiteľné súbory, ktoré interpretuje java program - virtuálny stroj).
Pri popisovaní tohto postupu budem vychádzať z adresárovej štruktúry:
Hello/ {projekt}
+- src/ {adresár so zdrojákmi}
+- net/
+- betlista/
+- tests/ {package net.betlista.tests}
+- HelloWorld.java {trieda, ktorú budeme prekladať}
Na prekladanie sa používa javac (java compiler = prekladač) program, ktorý je súčasťou JDK (nie je súčasťou JRE). Predpokladám, že sa nachádzame v adresári Hello. Na preloženie nám stačí napísať:
$ javac src/net/betlista/tests/HelloWorld.java
Po preložení sa výsledný .class súbor nachádza v rovnakom adresári ako .java súbor. Pre zmenu umiestnenia výsledných .class súborov treba zadať prepínač -d, napr.:
$ javac -d classes/ src/net/betlista/tests/HelloWorld.java
Výsledné preložené triedy budú v adresári classes, pred spustením príkazu je však nutné adresár classes vytvoriť.
Ďalšími zaujímavými príkladmi môže byť to ako zadať znakovú sadu (charset, encoding). Ako som písal vyššie používam Eclipse a v ňom mám nastavenú znakovú sadu na UTF-8, preto pri prekladaní musím používať prepínač -encoding:
$ javac -d classes/ src/net/betlista/tests/HelloWorld.java -encoding utf-8
Keby ste chceli prekladať viac súborov naraz, tak ich môžete vypísať, ale jednoduchšie je špecifikovať, že sa nachádzajú v adresári src (a packege je net.betlista.tests), takto:
$ javac -d classes/ -sourcepath src/net/betlista/tests/*.java
Bohužiaľ nie je (aspoň o tom neviem) spôsob, ako programu javac vysvetliť, že chcem aby si sám našiel .java súbory v adresári a rekurzívne v podadresároch, preto sa na väčšie projekty používajú iné nástroje - napr. ant.
