Programovanie (2) v Jave
1-INF-166, letný semester 2023/24

Prednášky · Pravidlá · Softvér · Testovač
· Vyučujúcich predmetu možno kontaktovať mailom na adresách uvedených na hlavnej stránke. Hromadná mailová adresa zo zimného semestra v letnom semestri nefunguje.
· JavaFX: cesta k adresáru lib je v počítačových učebniach /usr/share/openjfx/lib.


Letný semester, softvér: Rozdiel medzi revíziami

Z Programovanie
Skočit na navigaci Skočit na vyhledávání
 
(28 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 1: Riadok 1:
==Verzia Javy==
+
Pre účely tohto predmetu budeme potrebovať nasledujúci softvér:
* V učebniach a na testovači beží staršia Java SE 8, vaše programy by mali fungovať v tejto verzii.
+
* [https://www.oracle.com/java/technologies/downloads/ Java SE Development Kit 21] (stačí ľubovoľná verzia od 11 vyššie); pod Linuxom možno použiť aj balíky <tt>openjdk</tt>.
* Na svoj počítač si môžete nainštalovať aj novšiu verziu, napríklad Java SE 13, nemali by ste však používať črty jazyka, ktoré v staršej verzii nefungujú.
+
* [https://gluonhq.com/products/javafx/ Platformu JavaFX 21] SDK (opäť by mala stačiť aj verzia 11) pre vývoj aplikácií s grafickým používateľským rozhraním.
* Prehľad verzií Javy nájdete napríklad na [https://en.wikipedia.org/wiki/Java_version_history Wikipédii], alebo na stránke [https://www.oracle.com/technetwork/java/java-se-support-roadmap.html firmy Oracle]
+
* Vývojové prostredie [https://www.jetbrains.com/idea/download/ IntelliJ IDEA Community Edition 2023.3.3], prípadne jeho vhodnú alternatívu.
* Na počítač si potrebujete nainštalovať Java SE JDK, napríklad z [https://www.oracle.com/java/technologies/javase-downloads.html tejto stránky], v Linuxe môžete použiť aj balíčky openjdk.
 
  
==Mená súborov==
+
Odporúčame pracovať vo vývojom prostredí, avšak je dôležité naučiť sa kompilovať a spúšťať programy aj z príkazového riadku (minimálne za účelom riešenia rôznych problémov).
* V Jave musí meno súboru sedieť s menom triedy, ktorá sa v ňom nachádza a meno priečinku s menom balíčka (package)
+
 
* Nasledovný program musí teda byť v súbore <tt>Hello.java</tt>, ktorý je v priečinku <tt>hello</tt>
+
== Inštalácia softvéru ==
<pre>  
+
 
package hello;
+
* Stiahnite si [https://www.oracle.com/java/technologies/downloads/ odtiaľto] Java SE Development Kit 21 a postupujte podľa inštalačných pokynov.
 +
* Zistite, či inštalácia správne pridala adresár obsahujúci javovský kompilátor a interpreter do systémovej premennej <tt>PATH</tt>. V prípade úspechu by napríklad nasledujúce príkazy zadané do príkazového riadku mali vypísať verziu javovského kompilátora resp. interpretra zhodnú s nainštalovanou verziou Javy.
 +
<pre>
 +
javac --version
 +
java --version
 +
</pre>
 +
* V prípade, že tieto príkazy nefungujú, alebo sa vypísala stará verzia Javy, pridajte adresár obsahujúci programy <tt>javac</tt> a <tt>java</tt> do systémovej premennej <tt>PATH</tt> manuálne (a prípadný adresár starej verzie Javy odtiaľ odoberte).
 +
* Stiahnite si [https://gluonhq.com/products/javafx/ odtiaľto] ZIP archív s JavaFX. Zvoľte verziu 21 a inštaláciu typu SDK pre vašu architektúru a operačný systém.
 +
* Rozbaľte stiahnutý archív do vhodného priečinka. Žiadne ďalšie úkony nie sú v rámci inštalácie JavaFX nutné, ale zapamätajte si adresu podadresára <tt>lib</tt>, keďže ju neskôr budete potrebovať. Nižšie budeme na túto cestu odkazovať ako na <tt><cesta k lib></tt>.
 +
* Stiahnite si [https://www.jetbrains.com/idea/download/ odtiaľto] vývojové prostredie IntelliJ IDEA Community Edition 2023.3.3 a postupujte podľa inštalačných pokynov.
 +
* IntelliJ by mal automaticky rozoznať nainštalovanú verziu Javy. V prípade, že sa tak neudeje, pridajte ju manuálne podľa pokynov [https://www.jetbrains.com/help/idea/sdk.html tu].
 +
 
 +
== Skompilovanie a spustenie programu v Jave ==
 +
 
 +
Tento oddiel opisuje proces skompilovania a spustenia javovskej triedy <tt>Hello</tt> vypisujúcej na konzolu text <tt>Hello, World!</tt> v dvoch variantoch:
 +
* V prvom je trieda <tt>Hello</tt> súčasťou nepomenovaného balíka.
 +
* V druhom je trieda <tt>Hello</tt> súčasťou balíka <tt>somepackage</tt>.
 +
 
 +
=== Z príkazového riadku ===
 +
 
 +
Uvažujme najprv prípad, keď je trieda <tt>Hello</tt> súčasťou nepomenovaného balíka, t.j. jej zdrojový kód vyzerá nasledovne.
 +
 
 +
<syntaxhighlight lang="java">public class Hello {
 +
 
 +
    public static void main(String[] args) {
 +
        System.out.println("Hello, World!");
 +
    }
 +
 
 +
}
 +
</syntaxhighlight>
 +
* Trieda <tt>Hello</tt> musí byť uložená v súbore <tt>Hello.java</tt> (názov súboru bez prípony <tt>.java</tt> sa musí zhodovať s názvom triedy).
 +
 
 +
Postup skompilovania a spustenia triedy <tt>Hello</tt> z príkazového riadku je potom nasledovný:
 +
 
 +
# V príkazovom riadku sa nastavíme do priečinka obsahujúceho súbor <tt>Hello.java</tt>.
 +
# Triedu skompilujeme príkazom <tt>javac Hello.java</tt>, v dôsledku čoho by mal v rovnakom priečinku vzniknúť súbor <tt>Hello.class</tt> spustiteľný na JVM.
 +
# Triedu <tt>Hello</tt> spustíme príkazom <tt>java Hello</tt> (prípadné argumenty môžeme triede <tt>Hello</tt> zadávať obvyklým spôsobom).
 +
: ''Pozor'': kým pri volaní kompilátora <tt>javac</tt> je potrebné uviesť aj príponu kompilovaného súboru <tt>.java</tt>, pri volaní interpretra <tt>java</tt> príponu spúšťanej triedy <tt>.class</tt> nepíšeme (kým argumentom kompilátora je bežná cesta k súboru, argumentom interpretra je názov spúšťanej triedy).
 +
 
 +
Ďalej uvažujme prípad, keď je trieda <tt>Hello</tt> súčasťou balíka <tt>somepackage</tt> a jej kód tak vyzerá nasledovne.
 +
 
 +
<syntaxhighlight lang="java">package somepackage;
  
 
public class Hello {
 
public class Hello {
  
 
     public static void main(String[] args) {
 
     public static void main(String[] args) {
         System.out.println("Hello World!");
+
         System.out.println("Hello, World!");
 
     }
 
     }
 +
 
}
 
}
</pre>
+
</syntaxhighlight>
 +
* V tomto prípade by mala byť trieda <tt>Hello</tt> opäť uložená v súbore <tt>Hello.java</tt>, ktorý by mal navyše byť uložený v priečinku <tt>somepackage</tt>.
  
==Práca s Javou v editore==
+
Skompilovanie a spustenie triedy <tt>Hello</tt> &ndash; alebo presnejšie <tt>somepackage.Hello</tt> &ndash; z príkazového riadku realizujeme nasledovne:
 +
# Nastavíme sa do priečinka obsahujúceho priečinok <tt>somepackage</tt>.
 +
# Triedu skompilujeme príkazom <tt>javac somepackage/Hello.java</tt> (s príponou).
 +
# Triedu spustíme príkazom <tt>java somepackage.Hello</tt> (argumentom je názov spúšťanej triedy vrátane balíka).
  
Príklad ako skompilovať a spustiť príklad Hello world vyššie pomocou editora a príkazového riadku:
+
=== V IntelliJ IDEA ===
* Vytvoríme adresár <tt>hello</tt>, v ňom súbor <tt>Hello.java</tt> s rovnakým obsahom ako vyššie
 
* Kompilácia <tt>javac hello/Hello.java</tt> (vznikne súbor <tt>hello/Hello.class</tt>)
 
* Spustenie <tt>java hello.Hello</tt>
 
* Pozor, meno adresára musí sedieť s menom balíčka (<tt>hello</tt>), meno súboru s menom triedy (<tt>Hello</tt>)
 
* Príkazy <tt>javac</tt> a <tt>java</tt> nespúšťame priamo v priečinku <tt>hello</tt>, ale o jednu úroveň vyššie, kam sa dostaneme príkazom <tt>cd ..</tt>
 
* Ak vynecháme riadok <tt>package hello</tt>, môžeme mať súbor <tt>Hello.java</tt> priamo v aktuálnom adresári.
 
  
==Práca s Javou v prostredí Netbeans==
+
# Vytvoríme nový projekt pomocou voľby ''New Project''.
 +
#* V najnovšej verzii IntelliJ IDEA Community Edition 2023.3.3 ''odškrtneme'' (ak je zvolená) možnosť &bdquo;''Add sample code''&rdquo;, aby sa po vytvorení projektu automaticky nevygeneroval žiaden zbytočný kód; inak zvolíme východzie nastavenia (jazyk Java, Build system IntelliJ) a zadáme ľubovoľný názov projektu.
 +
#* V o niečo starších verziách (napr. v počítačovej učebni) najprv v prvých dvoch krokoch použijeme východzie nastavenia (jazyk Java, bez použitia šablóny ani ďalších voliteľných možností), v treťom kroku zadáme ľubovoľný názov projektu.
 +
# Ak sa nezobrazuje, zobrazíme panel so štruktúrou projektu cez <tt>View --> Tool Windows --> Project</tt> (alebo s použitím klávesovej skratky <tt>Alt + 1</tt>).
 +
# Rozbalíme modul pomenovaný rovnako ako projekt (tučným) a zvolíme priečinok <tt>src</tt>.
 +
# V ponuke <tt>File --> New</tt> (prípadne v podponuke <tt>New</tt> kontextovej ponuky, ktorá sa zobrazí po kliknutí na <tt>src</tt> pravou myšou) by sa teraz mala objavovať možnosť <tt>Java Class</tt>.
 +
# Po zvolení tejto možnosti zadáme názov triedy (vrátane balíkov), t.j. <tt>Hello</tt> pre triedu v nepomenovanom balíku a <tt>somepackage.Hello</tt> pre triedu v balíku <tt>somepackage</tt>.
 +
# V závislosti od vybranej alternatívy skopírujeme do editora vhodnú variantu triedy <tt>Hello</tt> z predchádzajúceho oddielu.
 +
# Triedu skompilujeme a spustíme napríklad kliknutím na zelenú šípku vedľa hlavičky metódy <tt>main</tt> a zvolením možnosti <tt>Run 'trieda.main()'</tt>. Následné ďalšie spustenia možno realizovať skratkou <tt>Shift + F10</tt>.
  
Pri Jave odporúčame práce v niektorom integrovanom prostredí, napríklad [http://netbeans.apache.org/ Netbeans]. Prostredie vám bude poskytovať rôzne nápovedy k menám príkazov a podobne.
+
Dôvod, prečo skratka <tt>Shift + F10</tt> (ekvivalentná možnosti <tt>Run --> Run 'Hello'</tt>) nefunguje hneď od začiatku je ten, že sme zatiaľ nevytvorili tzv. konfiguráciu behu, v ktorej sa napríklad zadáva verzia Javy použitá pri kompilovaní, hlavná trieda projektu (t.j. trieda, ktorá sa má spustiť po spustení projektu), prípadné argumenty z príkazového riadku, parametre pre kompilátor a interpreter, atď. V prípade kliknutia na zelenú šípku vedľa metódy main a zvolenia príslušnej možnosti sa automaticky vytvorí tzv. dočasná konfigurácia, pri ktorej sa trieda spustí s východzími nastaveniami.  
* Najnovšia verzia Netbeans je 11.2, s podporou Java SE 13.
 
* V učebniach beží staršia verzia Netbeans, v kombinácii s Java SE 8.
 
  
'''Vytvorenie projektu pre program Hello world v Netbeans'''
+
Pre neskoršie účely je dôležité vedieť vytvárať aj vlastné (a permanentné) konfigurácie behu (v jednom projekte možno definovať aj viacero konfigurácií, medzi ktorými sa potom možno prepínať pomocou prepínača v pravej časti nástrojovej lišty). Postup vytvorenia novej konfigurácie behu je nasledujúci:
* V menu zvolíme ''New Project''
+
# Zvolíme <tt>Run --> Edit Configurations...</tt>.
* Na prvej obrazovke zvolíme ''Categories: Java'' a ''Projects: Java Application''
+
# Klikneme na tlačidlo <tt>+</tt> a zvolíme možnosť <tt>Application</tt>.
* Na ďalšej obrazovke ''Project name: hello'' a ''Create Main Class: hello.Hello''
+
# Následne môžeme v hlavnej časti okna napravo zadať názov konfigurácie, napríklad <tt>Konfiguracia</tt>.
 +
# Zadáme potrebné údaje: predvolená by mala byť správna verzia Javy (napr. <tt>java 21</tt>), do políčka <tt>Main class</tt> zadáme názov hlavnej triedy projektu (napr. <tt>Hello</tt>), do políčka <tt>Program arguments</tt> môžeme zadať prípadné argumenty pre spúšťanú triedu z príkazového riadku (políčko môžeme ponechať prázdne). Prípadné ďalšie možnosti môžeme pridať kliknutím na <tt>Modify options</tt>.
 +
# Ukončíme dialóg tlačidlom <tt>OK</tt>.
 +
# Na nástrojovej lište sa uistíme, že je vybraná práve vytvorená konfigurácia a projekt spustíme skratkou <tt>Shift + F10</tt>.
  
'''Editovanie programu'''
+
Viac sa o konfiguráciách behu možno dočítať [https://www.jetbrains.com/help/idea/run-debug-configuration.html tu].
* V ľavej časti okna máte panel Projects, v ktorom nájdite projekt, ktorý ste práve vytvorili.
 
* V projekte rozbaľte '''Source Files''' a nájdete tam '''Hello.java''', ktorý si dvojitým kliknutím otvoríte v editore. Jeho obsah môžete modifikovať alebo celý zmazať a nahradiť programom Hello worlds vyššie
 
* Súbor nezabudnite uložiť (menu File, Save, alebo Ctrl-S)
 
  
'''Kompilovanie a spúšťanie'''
+
== Skompilovanie a spustenie programu v JavaFX ==
* V menu Run zvoľte Build main project (alebo klávesa F11 alebo '''ikonka kladivka''' na lište), program sa '''skompiluje'''. Prípadné chyby sa objavia v dolnej časti okna.
 
* V menu Run zvoľte Run main project (alebo klávesa F6 alebo '''ikonka zelenej šípky''' na lište), program sa '''spustí'''.
 
  
==Iné programátorské prostredia==
+
Ukážeme si teraz, ako z príkazového riadku a v IntelliJ IDEA skompilovať a spustiť nasledujúcu triedu pracujúcu s JavaFX, ktorá by mala zobraziť okno s titulkom <tt>Hello, World!</tt>. Táto trieda musí byť uložená v súbore <tt>HelloFX.java</tt>.
  
Nasledovné prostredia by mali fungovať na Linuxových aj Windowsových počítačoch.
+
<syntaxhighlight lang="java">import javafx.application.*;
* [https://www.eclipse.org/downloads/packages/release/2019-09/r/eclipse-ide-cc-developers Eclipse]
+
import javafx.stage.*;
* IntelliJ IDEA, komerčný softvér so [https://www.jetbrains.com/student/ študentskou licenciou zadarmo], alebo zadarmo aj Community version
+
import javafx.scene.*;
* [https://code.visualstudio.com/ Visual Studio Code] od firmy Microsoft (plus [https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack Java extension] alebo [https://aka.ms/vscode-java-installer-win inštalácia pre Windows])
+
import javafx.scene.layout.*;
  
Z nich iba Eclipse je k dispozícii na učebniach v Linuxe a sa teda použiť na skúške.
+
public class HelloFX extends Application {
 +
    @Override
 +
    public void start(Stage primaryStage) {
 +
        Pane pane = new Pane();
 +
        Scene scene = new Scene(pane, 300, 250);
 +
       
 +
        primaryStage.setTitle("Hello, World!");
 +
        primaryStage.setScene(scene);
 +
        primaryStage.show();
 +
    }
 +
   
 +
    public static void main(String[] args) {
 +
        launch(args);
 +
    }
 +
}
 +
</syntaxhighlight>
 +
 
 +
V nasledujúcom <tt><cesta k lib></tt> odkazuje na cestu k adresáru <tt>lib</tt> rozbaleného ZIP archívu JavaFX, o ktorej sme sa už zmienili vyššie. Viac detailov možno nájsť [https://openjfx.io/openjfx-docs/ tu].
 +
 
 +
=== Z príkazového riadku ===
 +
 
 +
# Nastavíme sa do priečinku obsahujúceho súbor <tt>HelloFX.java</tt>.
 +
# Triedu skompilujeme príkazom
 +
<pre>
 +
javac --module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml HelloFX.java
 +
</pre>
 +
<ol start=3>
 +
<li>Triedu spustíme príkazom</li>
 +
</ol>
 +
<pre>
 +
java --module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml HelloFX
 +
</pre>
 +
 
 +
=== V IntelliJ IDEA ===
 +
# Vytvoríme projekt a v ňom triedu <tt>HelloFX</tt> rovnakým spôsobom ako vyššie (dá sa prípadne vytvoriť aj projekt typu <tt>JavaFX</tt>).
 +
# Otvoríme dialóg <tt>File --> Project Structure...</tt>. V ňom otvoríme záložku <tt>Libraries</tt>, klikneme na tlačidlo <tt>+</tt> a zvolíme možnosť <tt>Java</tt>. Otvorí sa dialógové okno umožňujúce vytvoriť knižnicu z priečinka. Za tento priečinok vyberieme priečinok <tt><cesta k lib></tt>.
 +
# Vytvoríme konfiguráciu behu podobným spôsobom ako vyššie. Za hlavnú triedu vyberieme <tt>HelloFX</tt>.
 +
# Klikneme na <tt>Modify options</tt> a zaškrtneme možnosť <tt>Add VM options</tt>.
 +
# Následne by sa malo objaviť políčko <tt>VM options</tt>, do ktorého zadáme
 +
<pre>
 +
--module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml
 +
</pre>
 +
<ol start=6>
 +
<li>Dialóg potvrdíme kliknutím na <tt>OK</tt>.</li>
 +
<li>Projekt spustíme klávesovou skratkou <tt>Shift + F10</tt>.</li>
 +
</ol>

Aktuálna revízia z 16:26, 13. február 2024

Pre účely tohto predmetu budeme potrebovať nasledujúci softvér:

Odporúčame pracovať vo vývojom prostredí, avšak je dôležité naučiť sa kompilovať a spúšťať programy aj z príkazového riadku (minimálne za účelom riešenia rôznych problémov).

Inštalácia softvéru

  • Stiahnite si odtiaľto Java SE Development Kit 21 a postupujte podľa inštalačných pokynov.
  • Zistite, či inštalácia správne pridala adresár obsahujúci javovský kompilátor a interpreter do systémovej premennej PATH. V prípade úspechu by napríklad nasledujúce príkazy zadané do príkazového riadku mali vypísať verziu javovského kompilátora resp. interpretra zhodnú s nainštalovanou verziou Javy.
javac --version
java --version
  • V prípade, že tieto príkazy nefungujú, alebo sa vypísala stará verzia Javy, pridajte adresár obsahujúci programy javac a java do systémovej premennej PATH manuálne (a prípadný adresár starej verzie Javy odtiaľ odoberte).
  • Stiahnite si odtiaľto ZIP archív s JavaFX. Zvoľte verziu 21 a inštaláciu typu SDK pre vašu architektúru a operačný systém.
  • Rozbaľte stiahnutý archív do vhodného priečinka. Žiadne ďalšie úkony nie sú v rámci inštalácie JavaFX nutné, ale zapamätajte si adresu podadresára lib, keďže ju neskôr budete potrebovať. Nižšie budeme na túto cestu odkazovať ako na <cesta k lib>.
  • Stiahnite si odtiaľto vývojové prostredie IntelliJ IDEA Community Edition 2023.3.3 a postupujte podľa inštalačných pokynov.
  • IntelliJ by mal automaticky rozoznať nainštalovanú verziu Javy. V prípade, že sa tak neudeje, pridajte ju manuálne podľa pokynov tu.

Skompilovanie a spustenie programu v Jave

Tento oddiel opisuje proces skompilovania a spustenia javovskej triedy Hello vypisujúcej na konzolu text Hello, World! v dvoch variantoch:

  • V prvom je trieda Hello súčasťou nepomenovaného balíka.
  • V druhom je trieda Hello súčasťou balíka somepackage.

Z príkazového riadku

Uvažujme najprv prípad, keď je trieda Hello súčasťou nepomenovaného balíka, t.j. jej zdrojový kód vyzerá nasledovne.

public class Hello {

    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }

}
  • Trieda Hello musí byť uložená v súbore Hello.java (názov súboru bez prípony .java sa musí zhodovať s názvom triedy).

Postup skompilovania a spustenia triedy Hello z príkazového riadku je potom nasledovný:

  1. V príkazovom riadku sa nastavíme do priečinka obsahujúceho súbor Hello.java.
  2. Triedu skompilujeme príkazom javac Hello.java, v dôsledku čoho by mal v rovnakom priečinku vzniknúť súbor Hello.class spustiteľný na JVM.
  3. Triedu Hello spustíme príkazom java Hello (prípadné argumenty môžeme triede Hello zadávať obvyklým spôsobom).
Pozor: kým pri volaní kompilátora javac je potrebné uviesť aj príponu kompilovaného súboru .java, pri volaní interpretra java príponu spúšťanej triedy .class nepíšeme (kým argumentom kompilátora je bežná cesta k súboru, argumentom interpretra je názov spúšťanej triedy).

Ďalej uvažujme prípad, keď je trieda Hello súčasťou balíka somepackage a jej kód tak vyzerá nasledovne.

package somepackage;

public class Hello {

    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }

}
  • V tomto prípade by mala byť trieda Hello opäť uložená v súbore Hello.java, ktorý by mal navyše byť uložený v priečinku somepackage.

Skompilovanie a spustenie triedy Hello – alebo presnejšie somepackage.Hello – z príkazového riadku realizujeme nasledovne:

  1. Nastavíme sa do priečinka obsahujúceho priečinok somepackage.
  2. Triedu skompilujeme príkazom javac somepackage/Hello.java (s príponou).
  3. Triedu spustíme príkazom java somepackage.Hello (argumentom je názov spúšťanej triedy vrátane balíka).

V IntelliJ IDEA

  1. Vytvoríme nový projekt pomocou voľby New Project.
    • V najnovšej verzii IntelliJ IDEA Community Edition 2023.3.3 odškrtneme (ak je zvolená) možnosť „Add sample code”, aby sa po vytvorení projektu automaticky nevygeneroval žiaden zbytočný kód; inak zvolíme východzie nastavenia (jazyk Java, Build system IntelliJ) a zadáme ľubovoľný názov projektu.
    • V o niečo starších verziách (napr. v počítačovej učebni) najprv v prvých dvoch krokoch použijeme východzie nastavenia (jazyk Java, bez použitia šablóny ani ďalších voliteľných možností), v treťom kroku zadáme ľubovoľný názov projektu.
  2. Ak sa nezobrazuje, zobrazíme panel so štruktúrou projektu cez View --> Tool Windows --> Project (alebo s použitím klávesovej skratky Alt + 1).
  3. Rozbalíme modul pomenovaný rovnako ako projekt (tučným) a zvolíme priečinok src.
  4. V ponuke File --> New (prípadne v podponuke New kontextovej ponuky, ktorá sa zobrazí po kliknutí na src pravou myšou) by sa teraz mala objavovať možnosť Java Class.
  5. Po zvolení tejto možnosti zadáme názov triedy (vrátane balíkov), t.j. Hello pre triedu v nepomenovanom balíku a somepackage.Hello pre triedu v balíku somepackage.
  6. V závislosti od vybranej alternatívy skopírujeme do editora vhodnú variantu triedy Hello z predchádzajúceho oddielu.
  7. Triedu skompilujeme a spustíme napríklad kliknutím na zelenú šípku vedľa hlavičky metódy main a zvolením možnosti Run 'trieda.main()'. Následné ďalšie spustenia možno realizovať skratkou Shift + F10.

Dôvod, prečo skratka Shift + F10 (ekvivalentná možnosti Run --> Run 'Hello') nefunguje hneď od začiatku je ten, že sme zatiaľ nevytvorili tzv. konfiguráciu behu, v ktorej sa napríklad zadáva verzia Javy použitá pri kompilovaní, hlavná trieda projektu (t.j. trieda, ktorá sa má spustiť po spustení projektu), prípadné argumenty z príkazového riadku, parametre pre kompilátor a interpreter, atď. V prípade kliknutia na zelenú šípku vedľa metódy main a zvolenia príslušnej možnosti sa automaticky vytvorí tzv. dočasná konfigurácia, pri ktorej sa trieda spustí s východzími nastaveniami.

Pre neskoršie účely je dôležité vedieť vytvárať aj vlastné (a permanentné) konfigurácie behu (v jednom projekte možno definovať aj viacero konfigurácií, medzi ktorými sa potom možno prepínať pomocou prepínača v pravej časti nástrojovej lišty). Postup vytvorenia novej konfigurácie behu je nasledujúci:

  1. Zvolíme Run --> Edit Configurations....
  2. Klikneme na tlačidlo + a zvolíme možnosť Application.
  3. Následne môžeme v hlavnej časti okna napravo zadať názov konfigurácie, napríklad Konfiguracia.
  4. Zadáme potrebné údaje: predvolená by mala byť správna verzia Javy (napr. java 21), do políčka Main class zadáme názov hlavnej triedy projektu (napr. Hello), do políčka Program arguments môžeme zadať prípadné argumenty pre spúšťanú triedu z príkazového riadku (políčko môžeme ponechať prázdne). Prípadné ďalšie možnosti môžeme pridať kliknutím na Modify options.
  5. Ukončíme dialóg tlačidlom OK.
  6. Na nástrojovej lište sa uistíme, že je vybraná práve vytvorená konfigurácia a projekt spustíme skratkou Shift + F10.

Viac sa o konfiguráciách behu možno dočítať tu.

Skompilovanie a spustenie programu v JavaFX

Ukážeme si teraz, ako z príkazového riadku a v IntelliJ IDEA skompilovať a spustiť nasledujúcu triedu pracujúcu s JavaFX, ktorá by mala zobraziť okno s titulkom Hello, World!. Táto trieda musí byť uložená v súbore HelloFX.java.

import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;

public class HelloFX extends Application {
    @Override
    public void start(Stage primaryStage) {
        Pane pane = new Pane();
        Scene scene = new Scene(pane, 300, 250);
        
        primaryStage.setTitle("Hello, World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

V nasledujúcom <cesta k lib> odkazuje na cestu k adresáru lib rozbaleného ZIP archívu JavaFX, o ktorej sme sa už zmienili vyššie. Viac detailov možno nájsť tu.

Z príkazového riadku

  1. Nastavíme sa do priečinku obsahujúceho súbor HelloFX.java.
  2. Triedu skompilujeme príkazom
javac --module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml HelloFX.java
  1. Triedu spustíme príkazom
java --module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml HelloFX

V IntelliJ IDEA

  1. Vytvoríme projekt a v ňom triedu HelloFX rovnakým spôsobom ako vyššie (dá sa prípadne vytvoriť aj projekt typu JavaFX).
  2. Otvoríme dialóg File --> Project Structure.... V ňom otvoríme záložku Libraries, klikneme na tlačidlo + a zvolíme možnosť Java. Otvorí sa dialógové okno umožňujúce vytvoriť knižnicu z priečinka. Za tento priečinok vyberieme priečinok <cesta k lib>.
  3. Vytvoríme konfiguráciu behu podobným spôsobom ako vyššie. Za hlavnú triedu vyberieme HelloFX.
  4. Klikneme na Modify options a zaškrtneme možnosť Add VM options.
  5. Následne by sa malo objaviť políčko VM options, do ktorého zadáme
--module-path <cesta-k-lib> --add-modules javafx.controls,javafx.fxml
  1. Dialóg potvrdíme kliknutím na OK.
  2. Projekt spustíme klávesovou skratkou Shift + F10.