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 v některém z IDE, třeba v IntelliJ Idea)

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

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

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ář <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