Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Manuální instalace JavaFX

V předchozím kvízu, Kvíz - JavaFX, jsme si ověřili nabyté zkušenosti z kurzu.

V článku Úvod do JavaFX jsme si ukázali instalaci JavaFX jako globální knihovny pro NetBeans a její následné použití v projektu. Tento článek obsahuje alternativní postupy pro instalaci JavaFX jako binárky a dále manuální instalaci JavaFX jako knihovny a je určen pro pokročilejší publikum.

Již víme, že JavaFX bohužel není od Javy 11 součástí JRE. Knihovna se nadále vyvíjí a poskytuje skvělou platformu pro vytváření bohatých desktopových aplikací.

Instalace JavaFX jako binárky

Již jsme si říkali, že ji můžeme nainstalovat jako binárku nebo jako knihovnu. Pro úplnost si nejprve ukažme i první možnost.

Instalace

Binární soubory JavaFX se nachází na stránkách organizace Gluon. Odtud si stáhněte SDK podle vašeho operačního systému.

Možnosti stažení JavaFX SDK - Java FX - Okenní aplikace

SDK rozbalte někam na disk, kam máte právo zápisu. Dále je potřeba informovat systém, že JavaFX je přítomna. To zařídíme přidáním proměnné PATH_TO_FX mezi systémové proměnné.

Vytvoření projektu

Pro otestování správnosti instalace si vytvořte někde soubor HelloFX.java, do kterého vložte následující kód:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloFX extends Application {

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        Scene scene = new Scene(new StackPane(l), 640, 480);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

Zkompilování programu

Ve složce se souborem HelloFX.java si spustíme příkazový řádek. To uděláte např. otevřením složky v průzkumníku, kde se vrátíte o 1 složku nahoru pomocí Alt + . Nyní stisknete Shift, kliknete na složku s projektem pravým tlačítkem a vyberete "Otevřít zde okno příkazového řádku" (případně okno PowerShell).

Do příkazového řádku vložíme následující příkaz, pomocí kterého zkompilujeme program:

javac --module-path %PATH_TO_FX% --add-modules=javafx.controls HelloFX.java

Pokud konzole vypíše hlášku, že nezná příkaz javac, znamená to, že buď nemáte nainstalovanou Javu, nebo nemáte přidanou cestu k souboru javac v systémové proměnné PATH. Je tedy potřeba cestu přidat stejně, jako v případě JavaFX.

Po zkompilování se vytvoří nový soubor HelloFX.class, který spustíme pomocí následujícího příkazu:

java --module-path %PATH_TO_FX% --add-modules=javafx.controls HelloFX

Pokud vše proběhne úspěšně, uvidíte okno s vypsanými informacemi o použité verzi Javy a JavaFX.

Co přesně znamenají jednotlivé řádky kódu si vysvětlíme později. Nyní se pouze chceme přesvědčit, že máme JavaFX správně nainstalovanou.

Instalace JavaFX jako knihovny

Knihovny jsou hostované na stránkách Maven central a jsou rozděleny do následujících kategorií:

  • base - definuje základní API pro JavaFX, bindingy, property, kolekce a události
  • controls - zahrnuje všechny ovládací prvky, kterými JavaFX disponuje
  • fxml - definuje FXML API pro JavaFX
  • graphic - obsahuje hlavní API pro graf scény všech ovládacích prvků (layouty, kontejnery, životní cyklus aplikace, grafické tvary, transformace, canvas, ošetření vstupu, kreslení, zpracování obrázků), dále obsahuje API pro animace, podporu CSS stylů a další
  • media - obsahuje API pro práci se zvukem a videem
  • swing - podpora pro swingové komponenty
  • web - obsahuje API pro zobrazení webových stránek za pomoci WebView komponenty

Instalace

Pro minimální konfiguraci budeme potřebovat celkem 3 knihovny: base, graphics a controls. Vytvořte si novou složku, do které stáhnete tyto tři knihovny.

Hledani potrebnych knihoven - Java FX - Okenní aplikace

V Maven centrálním repozitáři naleznete požadované knihovny.

Výběr správné verze knihovny - Java FX - Okenní aplikace

Vyberete si požadovanou verzi. Je důležité, aby jste měli stejnou verzi pro všechny moduly JavaFX.

Zobrazení všech souborů, které lze stáhnout - Java FX - Okenní aplikace

Přes odkaz "View all" si zobrazíte seznam všech dostupných souborů, které lze stáhnout.

Stažení knihovny se zdrojovými kódy - Java FX - Okenní aplikace

Stáhněte soubor jak se zdrojovými kódy (source), tak specifický podle operačního systému (Windows, Linux, MacOS).

Vytvoření projektu

Ve složce s projektem opět vytvořte soubor HelloFX.java a do obsahu vložte kód, který je uveden výše.

Nyní se podíváme, jak říci Javě, aby použila stažené knihovny.

Abychom správně zkompilovali program, musíme JavaFX "přilinkovat". To zařídíme parametrem -cp (classpath), kterému předáme plnou cestu ke knihovnám. Protože máme zdrojový kód programu a knihovny vedle sebe, bude výsledný příkaz pro kompilaci vypadat následovně:

javac -cp javafx-base-11.0.1-sources.jar;javafx-controls-11.0.1-sources.jar;javafx-graphics-11.0.1-sources.jar HelloFX.java

Uživatelé systému Linux použijí jako separátor oddělující jednotlivé knihovny znak ":".

Spuštění programu

Konečně se dostáváme ke spuštění programu. Pomocí následujícího příkazu spustíme aplikaci.

java --module-path javafx-base-11.0.1-linux.jar:javafx-controls-11.0.1-linux.jar:javafx-graphics-11.0.1-linux.jar --add-modules=javafx.controls HelloFX

Pokud se vše podařilo, mělo by se objevit okno s informacemi o verzi samotné Javy a knihovny JavaFX.

Výsledek zkompilovaného programu - Java FX - Okenní aplikace

 

Předchozí článek
Kvíz - JavaFX
Všechny články v sekci
Java FX - Okenní aplikace
Článek pro vás napsal Petr Štechmüller
Avatar
Uživatelské hodnocení:
1 hlasů
Autor se věnuje primárně programování v Javě, ale nebojí se ani webových technologií.
Aktivity