34 lines
2 KiB
Markdown
34 lines
2 KiB
Markdown
|
# Práce s parametry příkazové řádky (programu)
|
||
|
|
||
|
- Mnoho programů je možné spustit s **jedním či více parametry příkazové řádky** (též **parametry programu**)
|
||
|
- Např. většina programů pro práci s různými soubory (obrázky, videa, textové soubory) umožňuje zadat jako parametr soubor, který mají po spuštění otevřít
|
||
|
|
||
|
### Zadání parametrů příkazové řádky
|
||
|
|
||
|
- Parametry se zadávají při spuštění programu **za příkaz, který program spouští**
|
||
|
- Parametrů může být více
|
||
|
- Jednotlivé parametry jsou odděleny mezerou
|
||
|
- ```java balík.Třída parametr1 parametr2 …```
|
||
|
- Např. ```java VypisParametruProgramu -v 128```
|
||
|
- Parametry s mezerou či mezerami
|
||
|
- Pokud je parametrem řetězec, který obsahuje jednu nebo více mezer, je nutné parametr uzavřít do uvozovek (jinak by byl chápán jako více parametrů)
|
||
|
- Např. ```java VypisParametruProgramu 128 "Program Files"```
|
||
|
|
||
|
### Předání parametrů příkazové řádky do programu
|
||
|
|
||
|
- S parametry zadanými při spuštění programu lze jednoduše pracovat
|
||
|
- Protože metoda ```main()``` je vstupní bod programu, jsou parametry příkazové řádky předány jako skutečný parametr této metody
|
||
|
- Jsou dostupné ve formálním parametru ```args```
|
||
|
- Jedná se o pole řetězců
|
||
|
- Řetězce mohou obsahovat libovolné znaky (tedy čísla, písmena, interpunkci, bílé znaky)
|
||
|
- Jednotlivé parametry (řetězce) jsou v jednotlivých buňkách pole
|
||
|
- Délka pole odpovídá počtu parametrů
|
||
|
- Pokud je program spuštěn bez parametrů (tj. všechny dosud předvedené programy), je ```args``` pole délky 0 (nikoliv ```null```)
|
||
|
|
||
|
### Zpracování parametrů příkazové řádky
|
||
|
|
||
|
- Parametry mohou mít libovolný význam, typicky se jedná o název souboru, přepínače či jiné (např. číselné) hodnoty
|
||
|
- Parametry jsou však vždy předány jako řetězce
|
||
|
- Pokud se jedná o čísla (sloužící k nějakému výpočtu), je potřeba převod z řetězce na číslo
|
||
|
|