FAV-ZCU/KIV PPA1/11. Parametry příkazové řádky.md

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