Black Friday Black Friday
Black Friday výprodej! Až 80 % extra bodů zdarma! Více informací zde

Java kompilace a build v příkazovém řádku - GUI, balíček

Java Pro pokročilé Java kompilace a build v příkazovém řádku - GUI, balíček

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

V tomto Java tutoriálu si provedeme rozšíření základních znalostí, které jsme se předvedli v předchozí lekci Java kompilace a build v příkazovém řádku - Základy. V první části si předvedeme primitivní GUI aplikaci, v druhé části provedeme vytvoření aplikace, která obsahuje spouštěcí třídu v balíčku (package).

Počítám, že máte nastavené PATH do adresáře v Javě, kde se nacházejí příslušné programy (java, javac, apod.. ).

Vytvoření GUI aplikace

Co bude obsahem GUI aplikace? Nic výjimečného, vytvoříme si okno, nastavíme mu nějaké parametry (polohu a velikost), vložíme do něj tlačítko a nastavíme mu událost. Událost bude pouze zobrazovat MessageBox.

Takže opět spustíme příkazový řádek a provedeme analogický postup jako v předchozím díle. Za pomocí příkazu md ProgramGUI vytvoříme adresář ProgramGUI. Po provedení se do něj přesuneme přes příkaz cd ProgramGUI. V adresáři poté vytvoříme zdrojový soubor přes příkaz fsutil file createnew ProgramGUI.java 0. Dále provedeme úpravu zdrojového souboru přes příkaz notepad ProgramGUI.java, vložíme kód níže, soubor uložíme a notepad ukončíme.

Swing

Pro starší Swing framework by zdrojový kód vypadal 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

Pokud chceme vyzkoušet JavaFX, tak zde je podobný program napsaný v JavaFX bez MVC (FXML).

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();
        }
}

Jako další krok provedeme opět kompilaci zdrojového kódu do bytekódu. Toho opět docílíme přes příkazový řádek příkazem javac ProgramGUI.java. Kompilací vznikne soubor ProgramGUI.class a protože v kódu máme nějaké události, které řešíme přes anonymní třídy, vzniknou nám tam ještě další třídy ProgramGUI$1.class, ProgramGUI$2.class jenž obsluhují dané události. Nyní nám zbývá jen daný zdrojový kód spustit. Toho docílíme příkazem java ProgramGUI. Jak vidíte, vše funguje.

Jar

Nyní nás čeká tvorba jar souboru. Jako první krok si vytvoříme soubor manifestu. Ten stvoříme přes příkaz fsutil file createnew manifest.man 0. Dále provedeme úpravu daného manifestu přes příkaz notepad manifest.man, vložíme kód níže, soubor uložíme a notepad ukončíme.

Manifest-Version: 1.0
Main-Class: ProgramGUI
Created-By: 1.8.0_144 (Oracle Corporation)

Nyní provedeme build neboli vytvoříme *.jar soubor. Provedeme příkaz jar cmf manifest.man Program.jar *.class. Jak vidíte, vytvořili jsme Program.jar. Nyní si daný program spustíme. Protože to je GUI aplikace, lze ji spustit double-clikem. Program.jar tedy přesuňte na plochu (Desktop) a dvakrát klikněte. Vše by mělo fungovat.

Samozřejmě spuštění lze provést i přes příkazový řádek. Jde to buď jako java -jar Program.jar nebo jako java -cp Program.jar ProgramGUI.

GUIaplikace

Vytvoření aplikace s balíčkem (package)

Bude se jednat prakticky o samospustitelný (runnable) jar jako v předchozím článku (díle), ovšem příklad bude mít spouštěcí třídu v balíčku (package). Čím větší programy budete dělat, tím dříve zjistíte, že systém balíčků je nevyhnutelný a pomáhá vám v přehlednosti projektu. Náš příklad kvůli zjednodušení využívá pouze jeden balíček, ale jestli jich budete mít 10, 100, 1000, ... je jen na vás. Řešení je analogické.

Poté, co jsme si spustili příkazový řádek, si vytvoříme v jakékoliv adresáři zdrojový soubor, kde bude zdrojový kód uložen (např. ProgramJava.java). Za pomoci příkazu md ProgramPackageJAVA vytvoříme adresář ProgramPackageJAVA. Po provedení se do něj přesuneme přes příkaz cd ProgramPackageJAVA. V tomto adresáři vytvoříme další podadresář, který bude představovat baliček (package) a to příkazem md balicek. Po provedení se do něj přesuneme přes příkaz cd balicek. V adresáři poté vytvoříme zdrojový soubor přes příkaz fsutil file createnew ProgramBalicek.java 0. Dále provedeme úpravu zdrojového souboru přes příkaz notepad ProgramBalicek.java, vložíme kód níže, soubor 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");
        }
}

Před kompilací se přesuneme o úroveň výše příkazem cd ... Nyní provedeme kompilaci přes příkazový řádek příkazem:

javac balicek\*.java`

Kompilací vznikne soubor ProgramBalicek.class. Nyní nám zbývá jen daný zdrojový kód spustit. Toho docílíme příkazem java balicek.ProgramBalicek. Jak vidíte, vše funguje.

Kompilace Package v Javě přes příkazový řádek

Nyní nás opět čeká tvorba spustitelného jar souboru. Vytvoříme si soubor manifestu přes příkaz fsutil file createnew manifest.man 0. Dále provedeme úpravu daného manifestu přes příkaz notepad manifest.man, vložíme text níže, soubor uložíme a notepad ukončíme.

Manifest-Version: 1.0
Main-Class: balicek.ProgramBalicek
Created-By: 1.8.0_144 (Oracle Corporation)

Nyní provedeme build neboli vytvoříme *.jar soubor. Provedeme příkaz:

jar cmf manifest.man ProgramBalicek.jar balicek\*.class

Jak vidíte, vytvořili jsme ProgramBalicek.jar. No a nyní si daný program spustíme. Spuštění v příkazovém řádku jde buď pomocí java -jar ProgramBalicek.jar nebo jako java -cp ProgramBalicek.jar balicek.ProgramBalicek.

Spuštění balíčku v Javě

 

Stáhnout

Staženo 63x (5.74 kB)

 

 

Článek pro vás napsal Robert Michalovič
Avatar
Jak se ti líbí článek?
1 hlasů
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovi%C4%8D-8a9b9498
Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!