Spuštění programu z příkazové řádky

Tomáš Pitner, Radek Ošlejšek, Marek Šabo

Základní životní cyklus javového programu

  • 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)

Nástroje ve vývojové distribuci

  • javac

    • překladač, tj. Hello.javaHello.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 umístěné v podadresáři bin

Překlad "Ahoj!"

  • Máme nainstalován Java SDK 8

  • 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"

  • 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

  • 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):

compile-nopkg

Spuštění voláním java:

run-nopkg

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ě:

run-with-package

Pro maven projekty (všechny projekty na cvičení) je nutno být ve adresáři src/main/java.

Praktické informace (aneb co je nutné udělat)

  • Cesty ke spustitelným programům PATH musejí obsahovat i adresář <JAVA_HOME>/bin

    • Např. …​;C:\Program Files\Java\jdk9.0\bin

  • Systémové proměnné by měly obsahovat JAVA_HOME=<adresář Javy>

    • Např. JAVA_HOME=C:\Program Files\Java\jdk9.0

  • Možné je nastavit i proměnnou CLASSPATH=<cesty ke třídám>

    • Např. CLASSPATH=c:\devel\pb162