Cvičenie 13 — Výnimky, maven a iné
Cieľom cvičení je precvičiť si vlastné výnimky a buildovanie aplikácie.
Aplikácia A (video)
- S využitím archetypu
jpaz2-archetype-launcher
vytvorte nový maven projekt. Nastavte Group Id:sk.upjs.paz
a Artifact Id:average-calculator
. - Vytvorte triedu
sk.upjs.paz.Utils
, ktorá bude obsahovať:- statickú metódu
double average(List<Double> zoznam)
, ktorá vráti priemer čísel v zozname (triedaList
takú metódu nemá). Metóda vyhodí nekontrolovanú výnimkusk.upjs.paz.EmptyListException
keď príde null alebo prázdny zoznam. - statickú metódu
List<Double> parseNumbers(String[] array)
, ktorá prekonvertuje každý prvok poľa na číslo a vráti zoznam prekonvertovaných hodnôt. Metóda vyhodí kontrolovanú výnimkusk.upjs.paz.ParseFailedException
v prípade, že niektorý z prvkov poľa sa nepodarilo skonvertovať. Na konverziu použite metódu statickú metóduparseDouble
triedyDouble
. - Bonus: Vo vyhodenej výnimke pribaľte aj zoznam neskonvertovateľných hodnôt zo vstupného poľa. V testovacej metóde túto výnimku odchyťte a vypíšte slová, ktoré sa nepodarilo skonvertovať.
- statickú metódu
- Vytvorte testovaciu triedu (
Launcher
), v ktorej v statickej metódemain
vhodne demonštrujete funkčnosť metód triedysk.upjs.paz.Utils
. - Pridajte JavaDoc komentáre do triedy
sk.upjs.paz.Utils
a vygenerujte dokumentáciu.- v Eclipse: Project -> Generate Javadoc…
- výstup je zvyčajne v priečinku
doc
v adresári projektu.
- Upravte metódu
main
tak, aby sa vstup nezapisoval priamo do kódu, ale aby sa využilo poleString[] args
. - Otestovanie v Eclipse: Kliknúť na Launcher.java -> Run As -> Run Configurations… -> Arguments
- Prezrite si slajdy z prednášky o buildovaní.
- S využitím Maven-a vytvorte spustiteľný
.jar
súbor.- Kliknutím na projekt -> Run As -> Maven build… (tá verzia s troma bodkami) -> Do goal zapísať: package -> Run
- Spustiteľný súbor je v priečinku
target
v adresári, kde je projekt.
- Spustite aplikáciu v príkazovom riadku
- Otvorte si príkazový riadok – na windowse v ponuke štart CMD (klávesová skratka CTRL+R)
- Overte si správne nainštalovanie a nastavenie javy pomocou príkazu
java -version
. Ak vypíše číslo verzie a ďalšie informácie (asi 3 riadky), je to ok. Ak nie, je väčšinou potrebné nastaviť systémovú premennú JAVA_HOME k priečinku, kde je uložené JDK. Detailný postup sa dá vyhľadať. - Príkaz
dir
vypíše obsah aktuálneho adresára - Príkaz
cd C:\\User\student\workspace
nastaví príslušný aktuálny adresár ako aktuálny - Nastavte si aktuálny adresár ako priečinok target v rámci daného projektu. Umiestnenie projektu viete zistiť cez možnosť properties po kliknutí na jav súbor alebo projekt v eclipse.
- Spustite jar súbor:
java -jar average-calculator.jar 2 3 4
. Vyskúšajte rôzne vstupy, aj nečíselné.
Aplikácia B (video)
- S využitím archetypu
maven-archetype-quickstart
vytvorte nový maven projekt. Nastavte Group Id:sk.upjs.paz
a Artifact Id:math-helper
. - Porovnajte pom.xml v tomto projekte s predošlým projektom. Inšpirujúc sa pom.xml projektov vytvorených archetypmi pre JPAZ, nastavte:
- kompilátor na verziu 1.8
- upravte buildovanie tak, aby sa vytvorilo spustiteľné jar-ko so spúšťacou triedou
App
- pridajte knižnicu
apache-commons-math
ako závislosť. Group Id a Artifact Id nájdete tu: https://mvnrepository.com/artifact/org.apache.commons/commons-math3/3.6.1
- Vytvorte jednoduché menu, ktoré ponúkne používateľovi niekoľko možností na výber po zadaní čísla (napr. ak chcete vypočítať faktoriál, stlačte 1). Môžete využiť
Scanner(System.in)
aswitch
na spracovanie jednotlivých volieb. - Bonus: Vložte menu do cyklu. Aplikácia nech sa ukončí, až keď používateľ zadá napr. 0.
- Vytvorte pre jednotlivé voľby v menu príslušný obslužný kód využívajúci metódy, ktoré ponúka knižnica apache-commons-math. Odporúčame napríklad niektorú z tried ArithmeticUtils, CombinatoricsUtils, MathUtils, FastMath.
- Vybuildujte spustiteľný jar súbor a funkčnosť aplikácie overte cez príkazový riadok.