Programovanie (1) v C/C++
1-INF-127, ZS 2024/25
Letný semester, softvér: Rozdiel medzi revíziami
Riadok 20: | Riadok 20: | ||
== Skompilovanie a spustenie programu v Jave == | == 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 === | === 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 tzv. ''classpath'' danej 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 static void main(String[] args) { | ||
+ | System.out.println("Hello, World!"); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </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>. | ||
+ | |||
+ | Skompilovanie a spustenie triedy <tt>Hello</tt> – alebo presnejšie <tt>somepackage.Hello</tt> – 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> (ide o tzv. ''classpath'' triedy <tt>Hello</tt>). | ||
=== V IntelliJ IDEA === | === V IntelliJ IDEA === |
Verzia zo dňa a času 18:21, 9. február 2021
Pre účely tohto predmetu budeme potrebovať nasledujúci softvér:
- Java SE Development Kit 15 (stačí ľubovoľná verzia od 11 vyššie); pod Linuxom možno použiť aj balíky openjdk.
- Platformu JavaFX 15 (na stránke ako „Latest Release”, ale opäť by mala stačiť aj verzia 11) pre vývoj aplikácií s grafickým používateľským rozhraním.
- Vývojové prostredie IntelliJ IDEA Community Edition 3.2, prípadne vhodnú alternatívu ako napríklad Eclipse alebo Visual Studio Code.
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).
Obsah
Inštalácia softvéru
- Stiahnite si Java SE Development Kit 15 odtiaľto 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 ZIP archív s JavaFX odtiaľto (pre najnovšiu verziu Javy odporúčame „Latest Release”, čiže verziu 15) a rozbaľte ho 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 v tomto texte budeme na túto cestu odkazovať ako na <cesta k lib>.
- Stiahnite si IntelliJ IDEA Community Edition 3.2 odtiaľto 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ý:
- V príkazovom riadku sa nastavíme do priečinka obsahujúceho súbor Hello.java.
- 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.
- 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 tzv. classpath danej 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:
- Nastavíme sa do priečinka obsahujúceho priečinok somepackage.
- Triedu skompilujeme príkazom javac somepackage/Hello.java (s príponou).
- Triedu spustíme príkazom java somepackage.Hello (ide o tzv. classpath triedy Hello).