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 vHello.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 souborHello.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
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ě:
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
jmenovatHelloWorld
-
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
-
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