Nedávno jsem prováděl změny verze Javy na projektu, který používá Spring Boot. Měnil jsem verzi Javy z verze 8 na verzi 11. Nebylo to až tak strašné, jak jsem čekal (spíše naopak), přesto se ale některé komplikace objevily. V tomto příspěvku budu postupovat od chyby k chybě, tak jak se u mě objevovaly.
Java
Instalace Open JDK na Ubuntu
V tomto příspěvku se podíváme na to, jak instalovat Open JDK na Ubuntu. To, zda již nějakou verzi Javy máte nainstalovánu zjistíte příkazem java -version
.
java -version openjdk 11.0.2 2019-01-15 OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3) OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)
To, zda máte více verzí Javy zjistíte příkazem update-alternatives --config java
.
update-alternatives --config java There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java Nothing to configure.
Jak je vidět z výpisu mám pouze jednu verzi Javy. Defaultní JDK nainstaluje takto:
apt-get install default-jdk Reading package lists... Done Building dependency tree Reading state information... Done default-jdk is already the newest version (2:1.11-68ubuntu1~18.04.1).
V tomto případě není co instalovat.
Idea IDE a česká klávesnice
Používáte vývojové prostředí Idea IDE a k tomu českou klávesnici? Je pravděpodobné, že máte problém s určitými znaky. Například se znaky [>{}
. Řešením je nastavení hodnoty actionSystem.force.alt.gr
v registru na true
.
Postup:
V IDE stiskněte kombinaci kláves Ctrl + Shift + A a do vyhledávacího pole napište registry.
Nastavte hodnotu actionSystem.force.alt.gr
na true
.
Nastavení JDK v Idea IDE
Nastavení verze Java JDK v Idea IDE se provede přes File -> Other Settings … -> Default Project Structure … -> Project Settings -> Project
Nový projekt v Idea IDE ze vzdáleného Git úložiště
Idea IDE má velmi dobře propracovánu spolupráci s verzovacím systémem Git. Pro vytvoření nového projektu z existujícího Git úložiště (repository) je postup následující: File -> New -> Project from Version Control -> Git
Otevře se okno, do kterého zadáte Git Repostory URL (adresa vzádleného úložiště), Parent Directory (ve Windows to bývá C:\Users\user-name\IdeaProjects) a Directory Name (většinou je to název projektu). Po vyplnění údajů klikněte na Clone. Idea naklonuje projekt ze vzdáleného úložiště do zadané složky (C:\Users\user-name\IdeaProjects\složka) a otevře jej. Je třeba ještě nastavit SDK (Idea vás na to upozorní, stačí jen kliknout na odkaz a vybrat z nabízených SDK).
Vaadin 8 a odkazy
Vaadin Link (odkaz) je klasický html odkaz <a href…> a na rozdíl od tlačítka a click listeneru jej crawler webových stránek je schopen najít a následovat na url, na kterou směřuje.
Textový odkaz
Link link = new Link("praceodnas.cz", new ExternalResource("https://www.praceodnas.cz")); addComponent(link);
Obrázek jako odkaz
Jako obrázek je možné použít ClassResource
nebo ThemeResource
. Pokud používáte klasickou Maven strukturu projektu, ClassResource
je zdroj ve složce src/main/resources
. V příkladu uvedený new ClassResource("/images/logo.png")
znamená, že soubor logo.png
se nachází ve složce src/main/resources/images
.
Dynamic Web Project a chybějící knihovna javax.servlet
Pokud si vytvoříte Dynamic Web Project v Eclipse, přidáte Tomcat a pokusíte se vytvořit vlastní servlet, může se vám stát, že knihovnu javax.servlet nelze importovat. Řešením je přidat Apache Tomcat runtime: pravým na projekt -> Properties -> v pravo záložka Runtimes -> zakliknout Apache Tomcat -> potvrdit.
Responsivní tlačítka v Vaadinu
V tomto příspěvku ukážu, jak vytvořit ve Vaadin 8 tlačítka, která se přizpůsobí velikosti prohlížeče. Pokud bude mít prohlížeč šířku větší než 500px, rozbrazí se tlačítko včetně popisku. Pokud bude šířka menší než 500px, zobrazí se pouze ikona.
VerticalLayout layout = new VerticalLayout(); layout.addStyleName("flexible-layout"); Responsive.makeResponsive(layout); Button btnAir = new Button("Airplane", VaadinIcons.AIRPLANE); btnAir.addStyleName("flexible-button"); Button btnBoat = new Button("Boat", VaadinIcons.BOAT); btnBoat.addStyleName("flexible-button"); Button btnEye = new Button("Eye", VaadinIcons.EYE); btnEye.addStyleName("flexible-button"); Button btnUser = new Button("User", VaadinIcons.USER); btnUser.addStyleName("flexible-button"); layout.addComponents(btnAir, btnBoat, btnEye, btnUser);
Tlačítku přidávám styl flexible-button a layoutu flexible-layout. Aby to fungovalo, je ještě potřeba udělat layout responsivní pomocí statické metody Responsive.makeResponsive().
Ostylování pomocí css. Zde třídě flexible-layout přidávám range a určuji, jak má v daném rozsahu vypadat styl třídy flexible-button.
@import "../valo/valo.scss"; @mixin mytheme { @include valo; // Insert your own theme rules here .flexible-layout { background: black; color: white; .flexible-layout[width-range~="0-499px"] { .flexible-button .v-button-caption { display: none; } } .flexible-layout[width-range~="500px-"] { .flexible-button .v-button-caption {} } }
A takto to vypadá