# 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

