Java kompilace a build v příkazovém řádku - Základy

Java Pro pokročilé Java kompilace a build v příkazovém řádku - Základy

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.

Tento článek je napsán pro úplné začátečníky, tak abyste byli schopni vytvořit programy v Javě bez IDE (vývojového prostředí). Rozhodně vám IDE doporučuji, většinou jsou zdarma. Ale někdy, když se něco pokazí nebo je problém s IDE a teprve s jazykem začínáte, nebo něco děláte špatně, lze si tímto způsobem vytvořit program a zjistit kde je chyba (např. v JDK, IDE, apod..). Obsahem tohoto a podobných článků není cílem vysvětlovat syntaxi Javy a proto nečekejte vysvětlení Java příkazů (instrukcí). Cílem tohoto článku je vám předvést a ukázat, že programovat lze i bez IDE. Ovšem nedělá se to :)

Označením build není myšleno to co znáte z nativních jazyků (kompilace + linking). Význam build v tomto článku je vytvoření archivního filu (souboru) projektu.

Nezaměňujte linking u nativních jazyků s Java 9 linking přes jlink pro vytváření runtime image.

Nastavení systémové proměnné PATH

Nejdříve samozřejmě musíme nainstalovat Javu SE. Tím je myšlena instalace JDK (Java Developer Kit - Java vývojový balíček) a JRE (Java Runtime Enviroment - Java běhové prostředí). Program se vyvíjí v JDK a spouští v JRE. Ve Windows (v mém případě ve Windows 10) si najdeme Ovládací panely a budeme postupovat takto (nutné mít práva administrátora ve Windows): Ovládací panely –> Systém –> Upřesnit nastavení systému –> Upřesnit –> Prostředí proměnných –> vybereme PATH a zvolíme upravit –> a zde vybereme Nový a vložíme umístění adresáře \bin v Javě JDK i JRE. V obou instalacích se nachází adresáře \bin\, ve kterých jsou různé nástroje. Poté je vhodné počítač restartovat.

Já si instaluji JDK do adresáře C:\Program Files\JavaJDK a JRE do C:\Program Files\JavaJRE, ale vy je samozřejmě můžete mít v jiném adresáři. Takže v mém případě je cesta C:\Program Files\JavaJDK\bin a C:\Program Files\JavaJRE\bin (viz. obrázek níže). Umístění adresáře nehraje roli. U starších OS (Win8, 7, Vista, XP) je postup téměř identický.

Proč nastavení systémové proměnné? Umožní nám to na příkazovém řádku přístup k příkazům (programům) umístěných v \JavaJDK\bin\ z jakéhokoliv cesty v cmd. V daném adresáři se např. nachází javac, což je kompilátor do byte kódu nebo java, což je spouštěč (launcher) Java programů.

Nastavení Java PATH

Test instalace JDK a nastavení PATH lze provést v příkazovém řádku příkazem java -version. Vypíše vám to verzi Javy, kterou máte nainstalovanou.

Hello world přes příkazový řádek bez balíčku

Nejdříve si spustíme příkazový řádek. V levém horním rohu obrazovky klikneme na tlačítko Start a objeví se kontextové menu. Vybereme si možnost Spustit a do dialogu napíšeme příkaz cmd a potvrdíme Enter. Tím se nám spustí příkazový řádek (Command Prompt). Samozřejmě tyto postupy by měly být platné a funkční i pro Powershell.

Poté, co jsme si spustili příkazový řádek, v jakémkoliv adresáři vytvoříme zdrojový soubor, kde bude uložen zdrojový kód (např. ProgramJava.java). Ten můžete vytvořit a uložit buď přes Notepad, nebo pokud chcete, řekneme si i jak to udělat přes příkazovou řádku. Za pomocí příkazu md ProgramJava vytvoříme adresář ProgramJava. Po provedení se do něj přesuneme přes příkaz cd ProgramJava. V adresáři poté vytvoříme zdrojový soubor přes příkaz fsutil file createnew ProgramJava.java 0. Dále provedeme úpravu zdrojového souboru přes příkaz notepad ProgramJava.java, soubor uložíme a Notepad ukončíme.

public class ProgramJava {
        public static void main (String [] args) {
                System.out.println("Ahoj program z Javy ");
        }
}
Zdrojový kód programu Java v příkazovém řádku

Jako další krok provedeme kompilaci zdrojového kódu do bytekódu. Toho opět docílíme přes příkazový řádek příkazem javac ProgramJava.java. Kompilací vznikne soubor ProgramJava.class. Nyní nám zbývá jen daný zdroják spustit pres spouštěč (launcher). Toho docílíme příkazem java ProgramJava. Jak vidíte vše funguje.

Všechny *.class soubory se dají dekompilovat přes JDK nebo dekompilovat přes další programy a tudíž prohlédnout zdrojové kódy.

Kompilace Java aplikace v příkazovém řádku

Vytvoření spustitelného jar souboru

Java disponuje spustitelným souborem typu *.jar. Je to obdoba *.exe (.com, apod..) od nativních jazyků pod Windows. Jedná se o tvz. zbuildovaný projekt. Java disponuje celkem třemi typy zbuildovaných projektů. Říká se jim archive file (archivní soubory).

  • .jar - Jar archive (pro standardní SE, EE aplikace + slouží i jako knihovny příp. frameworky)
  • .war - Web archive (pro EE webové aplikace, může v sobě obsahovat více *.jar archivů)
  • .ear - Enterprise archive (pro EE projekty, může v sobě obsahovat více *.jar a *.war archivů)

Jen *.jar je samospustitelný pod JRE. Bez nainstalování JRE nelze spustit *.jar. Ke spuštění ostatních jsou zapotřebí aplikační servery (např. Tomcat, WebLogic, JBoss,GlassFish, Payara, WildFly apod..).

Všechny archivy jsou kompatibilní se zip soubory. To znamená, že lze změnit koncovku na *.zip a daný projekt můžete rozbalit (extrahovat). Zobrazí se vám zkompilované soubory a jiné další adresáře s daty použité v aplikaci (např. obrázky *.jpg, *.gif, *.xml, apod..).

Jako první krok si vytvoříme soubor manifestu. Jedná se pomocný konfigurační soubor pro spuštění a buildování. V adresáři vytvoříme zdrojový soubor přes příkaz fsutil file createnew manifest.man 0. Dále provedeme úpravu zdrojového souboru přes příkaz notepad manifest.man, soubor uložíme a notepad ukončíme.

Manifest-Version: 1.0
Main-Class: ProgramJava
Created-By: 1.8.0_144 (Oracle Corporation)
Manifest pro Java aplikaci

Nyní tedy provedeme build neboli vytvoříme *.jar soubor. Spustíme příkaz jar cmf manifest.man Program.jar *.class. Jak vidíte, vytvořili jsme Program.jar. No a nyní si daný program spustíme. Protože je program konzolový, je nutné jej logicky spustit z příkazového řádku. Samozřejmě .jar lze spustit i dvojklikem na ploše, ale nic neuvidíte. Spuštění přes příkazový řádek provedeme buď jako java -jar Program.jar nebo jako java -cp Program.jar ProgramJava.

Spuštění konzolové Java aplikace přes příkazovou řádku

 

Stáhnout

Staženo 2x (1.58 kB)
Aplikace je včetně zdrojových kódů v jazyce java

 

 

Článek pro vás napsal Robert Michalovič
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
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 (2)

 

 

Komentáře

Avatar
ma.strouhal
Člen
Avatar
ma.strouhal:25. března 12:05

Roberte, díky za článek. Spoustě lidem to určitě pomůže, jen bych si dovolil poznamenat, že pro kompilaci a spuštění není nutné mít JRE a JDK zároveň, jak by mohlo být chápáno z první části článku. JDK v sobě obsahuje i JRE.

 
Odpovědět 25. března 12:05
Avatar
Robert Michalovič:28. března 8:33

*JRE od verze Java9 není součástí JDK, nyní je venku už Java10 a ta jej neobsahuje též. Smyslem článku je pouze vyzkoušení kompilace, spuštění a vytvoření jar a jeho spuštění přes příkazový řádek. Tato činnost je tak triviální že chápání není potřeba.

Adresářová struktura a obsah JAVY , tvz. JRE(JVM) a JDK s vlastním JRE(JVM) není předmětem článku.

Příště nededukuj a nedomnívej se, docházíš k chybným závěrům.

 
Odpovědět 28. března 8:33
Avatar
Robert Michalovič:19. dubna 21:38

Tak se ti musím omluvit, tedy pokud jsi myslel že JRE je JVM. V Javě9 a výš, JDK již neobsahuje adresář JRE jak jsme byli zvyklí ve starších verzích Javy8,7,6,... což bývalo JRE. Protože jsem v době mé reakce v Jave9 neprogramoval tak jsem já mylně domníval, že JVM není v JDK. Poté co jsem přešel na Javu9 a 10 je JVM pořád součástí JDK.

 
Odpovědět 19. dubna 21:38
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.

Zobrazeno 3 zpráv z 3.