Search
Při programování obvykle používáme sofistikované vývojové prostředí tzv. IDE. V případě našeho předmětu je to Netbeans. Netbeans IDE za nás dělá spoustu věcí o které se jako programátoři nemusíme starat. Měli bychom však vědět, co naše IDE dělá. Často se nám totiž stane, že IDE nědělá přesně to, co bychom čekali. Pochopíme-li co se děje v pozadí, budeme lépe připraveni nastalé problémy řešit.
Co jsme získali, když jsme si stáhli JDK? Java Development Kit je balíček pro vývoj v Javě. Umožnuje nám programy v jazyce JAVA nejen spouštět, ale i vytvářet.
Hodně zjednodušeně řečeno vám umožňuje váš kód přeložit do spustitelné podoby a následně i spustit.
O tom, jak Java funguje se můžete dočíst například na stránkách Oraclu
Podíváte-li se co obsahuje JDK, tak ve složce /bin naleznete programy java a javac. Kompilátor javac se používá pro překlad zdrojového kódu .java do tzv. bytecode - souboru s koncovkou .class. Program java pak spustí váš bytecode na JVM (Java Virtual Machine).
java -version
Jak nainstalovat Javu na váš systém snadno naleznete na internetu. Na Windows vám může pomoci následující tutoriál.
Zkusme si vytvořit jednoduchý program, přeložit(zkompilovat) ho a spustit v příkazovém řádku. V textovém editoru si vytvořme soubor HelloWorld.java.
public class HelloWorld { public static void main(String[] args){ System.out.println("Hello world!"); } }
ls javac HelloWorld.java ls java HelloWorld
Další materiál v angličtině: Princeton tutorial
Zkusme si kompilaci a spuštění trochu složitějšího programu.
Demonstrujeme vám jak vypadá kompilace vaší první úlohy v PR1.
Struktura projektu je již složitější, máme dva zdrojové soubory v adresářové struktuře. K tomu ve složce lib knihovnu KarelJRobot.jar.
Nejdříve se dostaneme do projektového adresáře. A zobrazíme si jeho obsah.
cd ownCloud/pr1/pr1-lab01 tree
Vytvoříme si adresář pro zkompilované .class soubory (build/classes jako to dělá IDE Netbeans).
mkdir build mkdir build/classes
Nyní zkompilujeme oba zdrojové soubory s použítím knihovny a nastavením výstupní složky.
javac -classpath lib/KarelJRobot.jar -d build/classes src/cz/cvut/fel/Lab01Karel.java src/cz/cvut/fel/Lab01Task.java
Nyní spustíme program Lab01Task, s tím, že definujeme, kde hledat ostatní soubory .class a knihovnu KarelJRobot.jar.
java -classpath build/classes:lib/KarelJRobot.jar cz.cvut.fel.Lab01Task
Můžete vidět, že kompilace a spuštění i poměrně jednoduchého programu v Javě v příkazové řádce vyžaduje již trochu úsilí. Proto máme nástroje, které nám s tímto pomohou.
Při práci s Netbeans si nyní dovedeme představit, co minimálně Netbeans potřebuje vědět pro správnou kompilaci a spuštění našeho programu. Zkuste si, že když změníte aktuální adresář o úroveň výše, nepodaří se Vám již načíst mapu simple.kwld (viz. výpis “Can't read world.”)!
cd .. java -cp pr1-lab01/build/classes:pr1-lab01/lib/KarelJRobot.jar cz.cvut.fel.Lab01Task
Stejný problém nastane v Netbeans pokud máte Project Folder nastavenou na jiný adresář než je v tomto případě pr1-lab01