Java kompilácie a build v príkazovom riadku - GUI, balíček
V tomto Java tutoriále si vykonáme rozšírenie základných znalostí, ktoré sme sa predviedli v predchádzajúcej lekcii Java kompilácie a build v príkazovom riadku - Základy. V prvej časti si predvedieme primitívne GUI aplikáciu, v druhej časti vykonáme vytvorenie aplikácie, ktorá obsahuje spúšťací triedu v balíčku (package).
Počítam, že máte nastavené PATH do adresára v Jave, kde sa nachádzajú príslušné programy (java, javac, apod ..).
Vytvorenie GUI aplikácie
Čo bude obsahom GUI aplikácie? Nič výnimočné, vytvoríme si okno, nastavíme mu nejaké parametre (polohu a veľkosť), vložíme do neho tlačidlo a nastavíme mu udalosť. Udalosť bude iba zobrazovať MessageBox.
Takže opäť spustíme príkazový riadok a prevedieme analogický postup
ako v predchádzajúcom diele. Za pomocou príkazu md ProgramGUI
vytvoríme adresár ProgramGUI. Po vykonaní sa doň presunieme cez
príkaz cd ProgramGUI. V adresári potom vytvoríme zdrojový
súbor cez príkaz fsutil file createnew ProgramGUI.java 0. Ďalej
vykonáme úpravu zdrojového súboru cez príkaz
notepad ProgramGUI.java, vložíme kód nižšie, súbor uložíme
a notepad ukončíme.
D:\ └── ProgramGUI └── ProgramGUI.java
Swing
Pre staršie Swing framework by zdrojový kód vyzeral takto:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ProgramGUI { public static void main(String[] args) { JFrame okno = new JFrame("Nase okno"); okno.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent arg0) { System.exit(1); } }); okno.setSize(600,400); okno.setLocation(500,300); okno.getContentPane().setBackground(Color.cyan); okno.setLayout(null); JButton tlacitko = new JButton("Stiskni me"); tlacitko.setBounds(200, 80, 200, 200); tlacitko.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(okno,"Dobry den"); } }); okno.add(tlacitko); okno.setVisible(true); } }
JavaFX
Ak chceme vyskúšať JavaFX, tak tu je podobný program napísaný v JavaFX bez MVC (FXML).
Tento zdrojový kód bude fungovať len u Java10, 09, 08. U Java11 a vyšších je JavaFX odobraná z JDK a je nutné používať externé knižnice (framework)
import javafx.application.*; import javafx.event.*; import javafx.geometry.Pos; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.control.Alert.AlertType; import javafx.scene.layout.*; import javafx.stage.Stage; public class ProgramGUI extends Application { private Scene scene; public static void main(String[] args) { Application.launch(args); } public void start(Stage stage) throws Exception { Button tlac = new Button("Stiskni mě"); tlac.setPrefSize(200,100); tlac.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent ae) { Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("Pozor"); alert.setContentText("Dobry den"); alert.show(); } }); FlowPane flowpane = new FlowPane(10,10); flowpane.setAlignment(Pos.CENTER); flowpane.setStyle("-fx-background-color: rgb(193, 122, 68)"); flowpane.getChildren().add(tlac); scene = new Scene(flowpane, 500, 250); stage.setScene(scene); stage.setTitle("Nase Okno"); stage.show(); } }
Ako ďalší krok vykonáme opäť kompiláciu zdrojového kódu do
bytekódu. Toho opäť docielime cez príkazový riadok príkazom
javac ProgramGUI.java. Kompiláciou vznikne súbor
ProgramGUI.class a pretože v kóde máme nejaké udalosti, ktoré
riešime cez anonymné triedy, vzniknú nám tam ešte ďalšie triedy
ProgramGUI$1.class, ProgramGUI$2.class ktorý
obsluhujú danej udalosti.
D:\ └── ProgramGUI ├── ProgramGUI$2.class ├── ProgramGUI$1.class ├── ProgramGUI.class └── ProgramGUI.java
Teraz nám ostáva len daný zdrojový kód spustiť. To docielime príkazom
java ProgramGUI. Ako vidíte, všetko funguje.
Jar
Teraz nás čaká tvorba jar súboru. Ako prvý krok si vytvoríme súbor
manifestu. Ten vytvoríme cez príkaz
fsutil file createnew manifest.man 0. Ďalej vykonáme úpravu
daného manifestu cez príkaz notepad manifest.man, vložíme kód
nižšie, súbor uložíme a notepad ukončíme.
Manifest-Version: 1.0 Main-Class: ProgramGUI Created-By: 1.8.0_144 (Oracle Corporation)
Teraz vykonáme build čiže vytvoríme * .jar súbor. Vykonáme príkaz
jar cmf manifest.man Program.jar *.class. Ako vidíte, vytvorili
sme Program.jar. Teraz si daný program spustíme. Pretože to je
GUI aplikácia, možno ju spustiť double-CLIK. Program.jar teda
presuňte na plochu (Desktop) a dvakrát kliknite. Všetko by malo
fungovať.
D:\ └── ProgramGUI ├── manifest.man ├── Program.jar ├── ProgramGUI$2.class ├── ProgramGUI$1.class ├── ProgramGUI.class └── ProgramGUI.java
Samozrejme spustenie je možné vykonať aj cez príkazový
riadok. Ide to buď ako java -jar Program.jar alebo ako
java -cp Program.jar ProgramGUI.

Vytvorenie aplikácie s balíčkom (package)
Bude sa jednať prakticky o samospustiteľný (runnable) jar ako v predchádzajúcom článku (diele), avšak príklad bude mať spúšťací triedu v balíčku (package). Čím väčšia programy budete robiť, tým skôr zistíte, že systém balíčkov je nevyhnutný a pomáha vám v prehľadnosti projektu. Náš príklad kvôli zjednodušeniu využíva iba jeden balíček, ale ak ich budete mať 10, 100, 1000, ... je len na vás. Riešenie je analogické.
D:\
└── ProgramPackageJAVA
└── balicek
└── ProgramBalicek.java
Potom, čo sme si spustili príkazový riadok, si vytvoríme v akejkoľvek
adresári zdrojový súbor, kde bude zdrojový kód uložený (napr.
ProgramJava.java). Za pomoci príkazu
md ProgramPackageJAVA vytvoríme adresár
ProgramPackageJAVA. Po vykonaní sa doň presunieme cez príkaz
cd ProgramPackageJAVA. V tomto adresári vytvoríme ďalší
podadresár, ktorý bude predstavovať baličiek (package) a to príkazom
md balicek. Po vykonaní sa doň presunieme cez príkaz
cd balicek. V adresári potom vytvoríme zdrojový súbor cez
príkaz fsutil file createnew ProgramBalicek.java 0. Ďalej
vykonáme úpravu zdrojového súboru cez príkaz
notepad ProgramBalicek.java, vložíme kód nižšie, súbor
uložíme a notepad ukončíme.
package balicek; public class ProgramBalicek { public static void main (String [] args) { System.out.println("Ahoj program z Javy s balickem"); } }
Pred kompiláciou sa presunieme o úroveň vyššie príkazom
cd ... Teraz vykonáme kompiláciu cez príkazový riadok
príkazom:
javac balicek\*.java`
Kompiláciou vznikne súbor ProgramBalicek.class. Teraz nám
ostáva len daný zdrojový kód spustiť.
D:\
└── ProgramPackageJAVA
└── balicek
├── ProgramBalicek.class
└── ProgramBalicek.java
To docielime príkazom java balicek.ProgramBalicek. Ako vidíte,
všetko funguje.

Teraz nás opäť čaká tvorba spustiteľného jar súboru.
D:\
└── ProgramPackageJAVA
├── manifest.man
└── balicek
├── ProgramBalicek.class
└── ProgramBalicek.java
Vytvoríme si súbor manifestu cez príkaz
fsutil file createnew manifest.man 0. Ďalej vykonáme úpravu
daného manifestu cez príkaz notepad manifest.man, vložíme text
nižšie, súbor uložíme a notepad ukončíme.
Manifest-Version: 1.0 Main-Class: balicek.ProgramBalicek Created-By: 1.8.0_144 (Oracle Corporation)
Teraz vykonáme build čiže vytvoríme * .jar súbor. Vykonáme príkaz:
jar cmf manifest.man ProgramBalicek.jar balicek\*.class
Ako vidíte, vytvorili sme ProgramBalicek.jar.
D:\
└── ProgramPackageJAVA
├── ProgramBalicek.jar
├── manifest.man
└── balicek
├── ProgramBalicek.class
└── ProgramBalicek.java
No a teraz si daný program spustíme. Spustenie v príkazovom riadku ide
buď pomocou java -jar ProgramBalicek.jar alebo ako
java -cp ProgramBalicek.jar balicek.ProgramBalicek.

Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 636x (5.74 kB)
