JShell Command Line je nástroj, kde môžeme skúšať spúšťať kód bez toho, aby sme museli vytvoriť novú triedu s main metódou.
JShell spustíme z bin adresára, kde máme nainštalovanú javu jdk vo verzii 9 a viac. Pri učení sa preferuje použiť verbose mód jshellu, čo nám poskytne čo najviac spätnej väzby pri práci s konzolou.
jshell –v
Ak si spustil jshell bez –v môžeš jshell vyponúť s príkazom /exit a potom spustiť znovu s –v nastavením. Teraz môžeš zadávať výrazy. Prvý spôsob je zadeklarovať premennú s hodnotou a následne hodnotu vypísať:
Alebo môžeš rovno napísať výraz, ktorý sa vyhodnotí a výsledok sa zapíše do premennej, ktorá dostane poradové číslo.
Je možné deklarovať metódy. Pri písaní príkazov, ak jshell zistí, že príkaz nie je ukončený, napríklad si napísal kučeravú zátvorku a stlačíš enter, tak sa vytvorí nový riadok na ktorého začiatku budú špeciálne znaky ...> čo znamená, že pokračuješ v písaní kódu a výraz sa ešte nevyhodnotí.
Metódu potom voláš klasicky:
Ak by si chcel prepísať metódu, respektíve čo robí vo vnútri, tak ju vieš napísať znovu a ona sa prepíše a platná bude posledná napísaná. Je možné aj prepísať typ premennej. Ak na začiatku bude x číslo, tak neskôr môže byť String.
Pod výpismi máme vždy aj poznámky o tom, čo sa deje na pozadí. Napríklad, že premenná x bola nahradená za String.
Môžeš napísať metódu, ktorá vo vnútri používa premenné alebo metódy, ktoré ešte neboli zadefinované. Fungovať budú až keď všetko zadefinuješ.
Príkazom /list si zobrazíš kód, ktorý si napísal. Každý vstup má číslo, čo predstavuje id vstupu. Tieto id slúžia aj pri výnimkách. Napíšme si príkaz, ktorý spadne a vypíše sa výnimka.
Po výpise /list zistíme čo znamenajú čísla vo výpise. Po prvé tam máme: at divide (#15:2), čo znamená, že chyba nastala na príkaze s id 15 a riadku 2 toho príkazu. Po druhé at (#16:1) je ďalšie miesto, kde sa metóda volala – klasický stack trace, ale s odkazom na /list výpis.
Jshell ponúka aj možnosti na doplnenie, keď stlačíme tab. Ak do konzoly napíšem Sy a stlačím tab, tak mi ponúkne možnosti. Potom ak napíšem System. a stlačím tab, tak mám ďalšie možnosti vypísané. A tak ďalej.
Tu sa dostávame k tomu, že vieme používať klasické dostupné api. Ako napríklad String metódy. V konzole som napísal prázdny String bodku a stlačil tabulátor.
Ak niektoré triedy nie sú dostupné, tak ich vieme importnúť. Pri písaní vieme typu stlačíme Shift + Tab a potom písmeno i, ak chceme importnúť. Potom máme možnosť urobiť nič, alebo importnúť.
Do shellu vieme písať aj shell špecifické prkazy. Stretli sme sa už s /list. Existujú aj ďalšie, napríklad /methods na výpis dostupných metód, /vars na výpis dostupných premenných, alebo /list –all na výpis všetkého aj importov aj chybne zadaných príkazov.
Všetko, čo sme napísali, úspešne si vieme uložiť do súboru pomocou príkazu /save nazovSuboru.txt. Tento súbor je uložený v priečinku bin, kde sme spustili jshell, ak nezadáme inak. Znovu vieme tento program otvoriť pomocou /open a názva súboru. Aj pri týchto príkazoch funguje dopĺňanie po stlačení tabulátoru.
Je možné písať skratky príkazov, ak sú tie skratky unikátne. Jediný príkaz, ktorý začína na písmeno l je list, teda jemožné napísať /l. To isté platí aj pre príkazy pre /l ak dáme pomlčku a tab, tak dostanem možnosti. Príkaz, ktorý začína na a je len jeden tak môžem napísať /l –a namiesto /list –all.
Tento príkaz som spustil nad čistou novou jshell, tak si môžeme pozrieť, čo je importnuté ako default.
Priblížili sme si základné možnosti nastavenia príkazového riadku JShell, je ich ale ďaleko viac. Ak máš záujem sa do tejto problematiky “zavŕtať” hlbšie, môžeš si pozrieť kompletný tutoriál. A napíš niečo do komentárov, poteším sa.
Pýtaš sa “prečo Java”?
Java je jeden z najpoužívanejších programovacích jazykov na svete. Ak sa o Javu zaujímaš (je jedno, či si začiatočník, alebo už programuješ), pripravili sme pre teba mnoho kurzov na https://skillmea.sk.