Pokračování výuky jazyka Java Java 2

Předmět Programování v Java II navazuje na předmět Programování v Java I a rozvíjí dovednosti studentů v programování a využití běžně používaných technologií z ekosystému jazyka Java.

Organizace předmětu a Podmínky Absolvování

Bodované úlohy na cvičeních  - minimálně 10 z 25

Od prvního cvičení (týden 17. - 21.2.2025) se budou cvičení bodovat. Tedy na cvičení bude nutno vždy vyřešit úkol, za který budou přiděleny body obdobně jako v Java I. V semestru je 13. týdnů, na posledním se bude psát zápočtový test, jedno cvičení odpadne díky Velikonocím a sportovnímu dni, (čtvrteční cvika dvě odpadnou díky státnímu svátku) a na jdenom cvičení proběhne test praktických znalostí. Tedy 9-10 cvičení, na každém z nich bude možno získat 3 body. Celkem tedy 30. Zapsat lze pouze 25 bodů, ale vyšší počet vyřeší případnou běžnou frekvenci absence kvůli nemoci a nebude nutno řešit náhrady cvičení. V případě dlouhodobější nemocenské bude vše řešeno individuálně.

Domácí úkoly minimálně 0 bodů z 10

Každému bodovanému cvičení odpovídá jeden domácí úkol, za který je možno získat 1 bod. Domácí úkoly slouží k procvičování, jejich autorství není možno přesně ověřit, proto je zde rozděleno pouze omezené množství bodů.

Test praktických znalostí minimálně 7 bodů z 15

V týdnu od 31.3. - 4.4.2025 proběhne test praktických znalostí, na kterém se u počítače na učebně bude tvořit kód dle zadání (programovací test).

Témata:

  • Logování, logování vyjímek, efektivita logiování
  • Lombok
  • java record
  • enum, switch, pattern mathing
  • Functionla Interfaces
  • JPA entity a JPA entity s vazbami
  • CriteriaQuery

Semestrální projekt 10-25

Semestrální projekt se bude odevzdávat do systému kelvin nebo edison (bude upřesněno) a obhajovat individuálně v průběhu zkouškového období, termíny budou zveřejněny. Témata projektů bude vytvoření REST API serveru pro ukládání dat z hry, případně z GUI vytvořeného v rmci jiných předmětů.

Zápočtový test 10-25

Zápočtový test proběhne v posledním týdnu semestru a ověří teoretické znalosti formou elektronického testu v LMS.

Semestrální projekt

Vytvořte webovou aplikaci (back end v Javě - Spring/Quarkus) s rozhraním REST, front end v libovolné webové technologii nebo JavaFX.

Podrobný popis zde

Termín odevzdání je do 21.6.2026 nebo před obhajobou projektu.

Kombinované studium

Podmínky pro studenty kombinované formy jsou stejné. Jen neají bodované cvičení (tutoriály) a tudíž je jiná rozložení bodů ve zbývajících úkolech.

  • Domácí úkoly (0-20) - domácích úkolů je 5 po 4 bodech
  • Test praktických znalostí (10-25) - proběhne 25.4.2025 v 7:15 v době tutoriálu
  • Semestrální projekt (10-30)
  • Zápočtový test (10-25)

Požadované nástroje

  • Java 25
  • Maven 3.9.12 (3.9.11)
  • SceneBuilder 25.0.x
  • IDE - Eclipse 2025-12 nebo IntelliJ idea2025.3 (nutná Ultimate pro web development)

Verze je dobré dodržet aby nedošlo k problémům.

Java 25

Java 25 - K dispozici jako OpenJDK nebo jako Oracle JDK

Java instalace pod Ubuntu

#Installation in command line
sudo apt update
sudo apt -y install openjdk-25-doc openjdk-25-jdk openjdk-25-jdk-headless openjdk-25-jre openjdk-25-jre-headless openjdk-25-source
#check success
java -version

Java instalece pod Windows

  1. Stažení instalátoru Oracle JDK
  2. Double click na instalátor
  3. Next, Next, Next ...

Maven 3.9.14

Maven 3.9.14 - ke stažení  maven.

Maven instalace pro Ubuntu

sudo apt update
sudo apt install maven
#download and extraction most recent version
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.14-bin.tar.gz
tar -xvf apache-maven-3.9.14-bin.tar.gz
#on the end of file $HOME/.bashrc add:
PATH="$HOME/apache-maven-3.9.14/bin:$PATH"
#run new terminal window and chceck version of maven
mvn -version

Maven instalace pro Windows

  1. Stažení balíku ze stránek
  2. Rozbalení do požadovaného umístění
  3. Nastavení cesty pro spouštění: Settings->About->Advanced System Settings->Environment Variables...
  4. Pro uživatele editovat proměnnou Path a přidat složku bin v rozbalené složce mavenu.
  5. Test v nové konzoli: mvn -version

SceneBuilder 25.0.x

Ke stažení zde.

Instalace pomocí instalátoru. Ve windows doubleclick ve Ubuntu např.:

sudo dpkg -i SceneBuilder-25.0.0.deb

Eclipse 2025-12

Eclipse - Instalátor ke stažení zde. Při instalaci zvolte variantu for "Java Developers" nebo " Eclipse IDE for Enterprise Java and Web Developers
Eclipse IDE for Enterprise Java and Web Developers". Nebo si stáhněte přímo balíček s Eclipse for Java Developer nebo balíček s Eclipse IDE for Enterprise Java and Web Developers.

Stažený balík rozbalte a vytvořte si ikony v systémovém menu pro spouštění. Pro windows jw tostupný také instalátor (Next, Next, Next)

Do eclipsu si doinstalujte z Eclipse Marketplace tyto pluginy:

V Window -> Preferencies -> JavaFX si nastavte cestu k SceneBuilderu

Lombok 1.18.42

Stáhněte si Lombok. V adresáři kde jste si Lombok stáhli spusťte příkaz (ve Windows stačí dvojklik myší na soubor):

  • java -jar lombok.jar

Pomocí tlačítka "Specify location ..." vyberte umístění eclipsu a tlačítkem "Install/Update" nainstalujde podporu pro Lombok do Eclipsu.

Vytvožření spouštěcí menu ikonky pro Eclipse v Ubuntu

#in folder $HOME/.local/share/applications create  file eclipse-2025-12.desktop
#With content:
[Desktop Entry]
Version=1.0
Name=2025-12 Eclipse Java
Comment=Eclipse 2025-12 My favorite development tool for my favorite language :-)
Exec=/path/to/my/eclipse/java-2025-12/eclipse/eclipse
Icon=/path/to/my/eclipse/java-2025-12/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Programming;Application;
Name[en_US]=Eclipse Java 2025-12

InteliJ IDEA

InteliJ IDEA je ke stažení zde.

Nainstalujte si pluginy:

Videotutoriál instalace všech nástrojů pod Windows

Instalace všech nástrojů pod Windows

Videotutoriál instalace všech nástrojů pod Ubuntu

Instalace všech nástrojů pod Ubuntu

Předběžný nezávazný plán přednášek a cvičení

Týden Přednáška Cvičení Domácí úkol
1
17.2.-21.2.

maven
modules

maven maven
2
24.2.-28.2.

logging
static factory methods
builder
javabeans
equals/hashcode

modules modules
3
3.3.-7.3.

lombok
record
enums*
switch*
pattern matching
lambdas*

logging
builder
equals/hashcode

logging
4
10.3.-14.3.
jpa

lombok
record

lombok
5
17.4.-21.4.

jpa ql
JPA criteria query
cdi

JPA JPA
6
24.3.-28.3.

rest
Jax-rs*
JSON binding api
Spring – cdi, rest, component
Quarkus + panache

JPA - vazby

JPA - vazby
7
31.3.-4.4.

Concurrency
internacialization
bigInteger, Bigdecimal
Money

praktická písemka load JSON
8
7.4.-11.4.
Java NIO spring, rest spring+rest
9
14.4.-18.4.

networking
serialization

spring, teameleaf networking
10
21.4.-25.4.

velikonoce

concurency cryptography
11
28.4.-2.5.
reflection
security
cryptography

concurency

 

 
12
5.5.-9.5.

unit testy
mock objects

unit testy
konzultace projektů

 
13
12.5.-16.5.
zápočťák - teoretický test