Spuštění programu z příkazové řádky Základní životní cyklus javového programu • V Javě sice existuje interaktivní (tzv. REPL read-eval-print-loop) prostředí, • většinou však kód napíšeme do souboru, uložíme, přeložíme a spustíme. • Zdrojový kód každé veřejné (public) třídy je umístěn v jednom souboru ◦ např. třída Hello je v Hello.java Postup: • vytvoření zdrojového textu (libovolným editorem) • překlad (nástrojem javac) • spuštění (nástrojem java) • (anebo totéž jednodušeji zelenou šipkou v některém z IDE, třeba v IntelliJ IDEA) Nástroje ve vývojové distribuci javac překladač, tj. Hello.java → Hello.class java (nebo jexec) spouštěč přeloženého bytecode javadoc generátor dokumentace jar správce archivů JAR (sbalení, rozbalení, výpis)  Pod Windows to jsou .exe soubory java, javac… umístěné v podadresáři bin instalace Javy. Překlad "Ahoj!" • Máme nainstalován Java SDK 8 (jen příklad, funguje i s dalšími verzemi) • Jsme v adresáři c:\devel\pb162, v něm je soubor Hello.java • Spustíme překlad — javac Hello.java — název souboru je včetně přípony .java • Je-li program správně napsán, přeloží se "mlčky" 1 • Vytvoří se soubor Hello.class Hello.java public class Hello {   public static void main(String[] args) {   System.out.println("Ahoj!");   } } Spuštění "Ahoj!" • Spustíme program Hello příkazem java Hello, název třídy je bez přípony .class • V nejnovějších verzích Javy lze spustit rovnou včetně překladu: java Hello.java, pak se přeloží s hned spustí, viz dále. • Je-li program správně napsán a přeložen, vypíše se Ahoj! Překlad & Spuštění Překlad překladačem javac (úspěšný, bez hlášení překladače): Spuštění voláním java: Co když je tŕída v adresáří (balíku) Když je tŕída v balíku, tj. na začátku souboru je: package cz.muni.fi.pb162.hello; Kompilace a spuštění pak vypadá následovně: 2  Pro maven projekty (všechny projekty na cvičení) je nutno být ve adresáři src/main/java. Od Java 11: překlad a spuštění v jednom • Počínaje Java 11 lze na jednoduché(!) programy použít přímý postup: • java HelloWorld.java → program se přeloží a následně spustí • funguje dokonce i tehdy, nebude-li se třída s metodou main jmenovat HelloWorld • blíže také 330: Launch Single-File Source-Code Programs Praktické informace (aneb co je nutné udělat) • Cesty ke spustitelným programům PATH musejí obsahovat i adresář /bin ◦ Např. …;C:\Program Files\Java\jdk9.0\bin • Systémové proměnné by měly obsahovat JAVA_HOME= ◦ Např. JAVA_HOME=C:\Program Files\Java\jdk9.0 • Možné je nastavit i proměnnou CLASSPATH= ◦ Např. CLASSPATH=c:\devel\pb162 Spuštění sbaleného programu • Java má formát JAR (Java ARchive) pro distribuci programů složených z mnoha tříd. • Je podobný ZIP s pomocnými soubory navíc. • V archívu se deklaruje, která třída (=její metoda main) se spouští. • Lze pak spouštět jakoby celý archív: java -jar myapp.jar 3