Upload
marcinstachniuk
View
11
Download
0
Embed Size (px)
Citation preview
Java Web Start – jak żyć z tą dziwną technologią?Marcin Stachniuk
● Java / Scala developer● Organizator Chamberconf● Reviewer Practical Unit Testing● Blog: mstachniuk.blogspot.com● Twitter: @MarcinStachniuk
● Prelegent na: Wrocław JUG, Warsjawa, dbConf, ChamberConf, Careercon Wrocław, Warsjawa, 33degree 4 charity, DevCrowd’16, IT Career Summit
Java Platform Standard Edition 8 Documentation
https://docs.oracle.com/javase/8/docs/
Java Platform Tutorial: Swing
https://docs.oracle.com/javase/tutorial/uiswing/components/text.html
Przykładowy plik JNLP
<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File for TextSamplerDemo --><jnlp spec="1.0+" codebase="https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TextSamplerDemoProject" href="TextSamplerDemo.jnlp"> <information> <title>TextSamplerDemo</title> <vendor>The Java(tm) Tutorial</vendor> <homepage href="https://docs.oracle.com/javase/tutorial/uiswing/examples/components/index.html#TextSamplerDemo"/> <description>TextSamplerDemo</description> <description kind="short">Uses one of each of Swing's text components.</description> <offline-allowed/> </information> <resources> <j2se version="1.7+"/> <jar href="TextSamplerDemo.jar"/> </resources> <application-desc main-class="components.TextSamplerDemo"/></jnlp>
Java Web Start Sequence Diagram
Java Web Start Sequence Diagram
click
Java Web Start Sequence Diagram
click download
Java Web Start Sequence Diagram
click downloadrun
Java Web Start Sequence Diagram
click downloadrun
are you sure?
Java Web Start Sequence Diagram
click downloadrun
are you sure?download
JARs
Java Web Start Sequence Diagram
run applicationon javaws
click downloadrun
are you sure?download
JARs
Java Web Start Sequence Diagram
run applicationon javaws
click downloadrun
are you sure?download
JARs
Co może pójść nie tak?
In JNLP: <j2se version="1.7"/> User: Java 1.8
Co może pójść nie tak?
In JNLP: <j2se version="1.8.0_28"/> User: Java 1.8.0_50
Co może pójść nie tak?
● Różne zainstalowane wersje Javy na maszynach klienckich● Czasem javaws chce ściągać i instalować nowszą wersję
JRE● Różne zachowanie zależnie od systemu operacyjnego i
zainstalowanej wersji JRE● Od któregoś momentu aplikacje muszą być podpisane
(Self-signed są blokowane)● Aplikacje startują w piaskownicy (javaws albo
jp2launcher)
Co może pójść nie tak?
● Różne zainstalowane wersje Javy na maszynach klienckich● Czasem javaws chce ściągać i instalować nowszą wersję
JRE● Różne zachowanie zależnie od systemu operacyjnego i
zainstalowanej wersji JRE● Od któregoś momentu aplikacje muszą być podpisane
(Self-signed są blokowane)● Aplikacje startują w piaskownicy (javaws albo
jp2launcher)
Co może pójść nie tak?
● Różne zainstalowane wersje Javy na maszynach klienckich● Czasem javaws chce ściągać i instalować nowszą wersję
JRE● Różne zachowanie zależnie od systemu operacyjnego i
zainstalowanej wersji JRE● Od któregoś momentu aplikacje muszą być podpisane
(Self-signed są blokowane)● Aplikacje startują w piaskownicy (javaws albo
jp2launcher)
Co może pójść nie tak?
● Różne zainstalowane wersje Javy na maszynach klienckich● Czasem javaws chce ściągać i instalować nowszą wersję
JRE● Różne zachowanie zależnie od systemu operacyjnego i
zainstalowanej wersji JRE● Od któregoś momentu aplikacje muszą być podpisane
(Self-signed są blokowane)● Aplikacje startują w piaskownicy (javaws albo
jp2launcher)
Co może pójść nie tak?
● Różne zainstalowane wersje Javy na maszynach klienckich● Czasem javaws chce ściągać i instalować nowszą wersję
JRE● Różne zachowanie zależnie od systemu operacyjnego i
zainstalowanej wersji JRE● Od któregoś momentu aplikacje muszą być podpisane
(Self-signed są blokowane)● Aplikacje startują w piaskownicy (javaws albo
jp2launcher)
Rozwiązanie problemów
Rozwiązanie problemów
Jak działa IceBoar?
Jak działa IceBoar?
click
Jak działa IceBoar?
click download
Jak działa IceBoar?
click download run
Jak działa IceBoar?
click download run
are you sure?
Jak działa IceBoar?
click download run
are you sure?
download& run
Jak działa IceBoar?
click download run
are you sure?
download& run download JRE
Jak działa IceBoar?
click download run
are you sure?
download& run download JRE
download JARs
Jak działa IceBoar?
click download run
are you sure?
download& run download JRE
download JARs
run onour JRE
Jak działa IceBoar?
click download run
are you sure?
download& run download JRE
download JARs
run onour JRE
Jak działa IceBoar?
click download run
are you sure?
download& run download JRE
download JARs
run onour JRE
Co zyskujemy w ten sposób?
● Wiemy na jakiej wersji maszyny uruchomi się nasza aplikacja
● Aplikacja uruchomi się po za piaskownicą (java zamiast javaws)
● Podpisujemy tylko IceBoar’a● Nie potrzeba uprawnień admina do instalacji JRE
Jak wprowadzić IceBoara do projektu?
<dependency> <groupId>com.roche</groupId> <artifactId>ice-boar</artifactId> <version>${project.version}</version> <classifier>jar-with-dependencies</classifier></dependency>
Jak wprowadzić IceBoara do projektu?
<jnlp spec="1.0+" codebase="${codebase}"> <information> .... </information> <security> <all-permissions/> </security> <resources> <j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"/> <jar href="${jre.and.jars.host}/${jars.path}/ice-boar-1.0-jar-with-dependencies.jar"/>
<property name="jnlp.IceBoar.close-on-end" value="false"/> <property name="jnlp.IceBoar.main-class" value="com.roche.iceboar.helloworldswing.HelloWorld"/> <property name="jnlp.IceBoar.jar.0" value="${jre.and.jars.host}/${jars.path}/ice-boar-hello-world-swing-${version}-jar-with-dependencies.jar"/>
<property name="jnlp.IceBoar.splash" value="${jre.and.jars.host}/img/ice-boar-splash.png"/> </resources>
<application-desc main-class="com.roche.iceboar.IceBoar"> </application-desc></jnlp>
Co jeszcze może IceBoar?
● Ustawienie splash screena podczas ładowania aplikacji● Usunięcie ramki wokół splash screena● Możliwość zmiany tytułu i ikony IceBoar’a● Uruchomienie aplikacji na JRE zainstalowanym w systemie● Cache ściąganego JRE (dla wolnych połączeń)● Opcja niezamykania okna IceBoar’a po zakończeniu i
wyświetlania logów
Pytania
?
Java Web Start – jak żyć z tą dziwną technologią?Marcin Stachniuk
● Java / Scala developer● Organizator Chamberconf● Reviewer Practical Unit Testing● Blog: mstachniuk.blogspot.com● Twitter: @MarcinStachniuk
● Prelegent na: Wrocław JUG, Warsjawa, dbConf, ChamberConf, Careercon Wrocław, Warsjawa, 33degree 4 charity, DevCrowd’16, IT Career Summit
Dziękuję!