java web start – jak żyć z tą dziwną technologią

40
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

Upload: marcinstachniuk

Post on 21-Jan-2018

11 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Java Web Start – jak żyć z tą dziwną technologią

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

Page 2: Java Web Start – jak żyć z tą dziwną technologią

Java Platform Standard Edition 8 Documentation

https://docs.oracle.com/javase/8/docs/

Page 3: Java Web Start – jak żyć z tą dziwną technologią

Java Platform Tutorial: Swing

https://docs.oracle.com/javase/tutorial/uiswing/components/text.html

Page 4: Java Web Start – jak żyć z tą dziwną technologią

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>

Page 5: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

Page 6: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

click

Page 7: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

click download

Page 8: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

click downloadrun

Page 9: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

click downloadrun

are you sure?

Page 10: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

click downloadrun

are you sure?download

JARs

Page 11: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

run applicationon javaws

click downloadrun

are you sure?download

JARs

Page 12: Java Web Start – jak żyć z tą dziwną technologią

Java Web Start Sequence Diagram

run applicationon javaws

click downloadrun

are you sure?download

JARs

Page 13: Java Web Start – jak żyć z tą dziwną technologią

Co może pójść nie tak?

In JNLP: <j2se version="1.7"/> User: Java 1.8

Page 14: Java Web Start – jak żyć z tą dziwną technologią

Co może pójść nie tak?

In JNLP: <j2se version="1.8.0_28"/> User: Java 1.8.0_50

Page 15: Java Web Start – jak żyć z tą dziwną technologią

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)

Page 16: Java Web Start – jak żyć z tą dziwną technologią

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)

Page 17: Java Web Start – jak żyć z tą dziwną technologią

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)

Page 18: Java Web Start – jak żyć z tą dziwną technologią

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)

Page 19: Java Web Start – jak żyć z tą dziwną technologią

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)

Page 20: Java Web Start – jak żyć z tą dziwną technologią

Rozwiązanie problemów

Page 21: Java Web Start – jak żyć z tą dziwną technologią

Rozwiązanie problemów

Page 22: Java Web Start – jak żyć z tą dziwną technologią

Rozwiązanie problemów

https://github.com/Roche/IceBoar

Page 23: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

Page 24: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click

Page 25: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download

Page 26: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

Page 27: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

Page 28: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run

Page 29: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run download JRE

Page 30: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run download JRE

download JARs

Page 31: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run download JRE

download JARs

run onour JRE

Page 32: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run download JRE

download JARs

run onour JRE

Page 33: Java Web Start – jak żyć z tą dziwną technologią

Jak działa IceBoar?

click download run

are you sure?

download& run download JRE

download JARs

run onour JRE

Page 34: Java Web Start – jak żyć z tą dziwną technologią

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

Page 35: Java Web Start – jak żyć z tą dziwną technologią

Jak wprowadzić IceBoara do projektu?

<dependency> <groupId>com.roche</groupId> <artifactId>ice-boar</artifactId> <version>${project.version}</version> <classifier>jar-with-dependencies</classifier></dependency>

Page 36: Java Web Start – jak żyć z tą dziwną technologią

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>

Page 37: Java Web Start – jak żyć z tą dziwną technologią

Strona z przykładami

http://roche.github.io/IceBoar/

Page 38: Java Web Start – jak żyć z tą dziwną technologią

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

Page 39: Java Web Start – jak żyć z tą dziwną technologią

Pytania

?

Page 40: Java Web Start – jak żyć z tą dziwną technologią

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ę!