@HendrikEbbers
Karakun DevHub_
dev.karakun.com
@HendrikEbbers
2019
Java Desktop
Karakun DevHub_
@HendrikEbbersdev.karakun.com
About me
• Karakun Co-Founder
• Founder of JUG Dortmund
• JSR EG member
• JavaOne Rockstar, Java Champion
• AdoptOpenJDK TSC member
Karakun DevHub_
@HendrikEbbersdev.karakun.com
About me
@HendrikEbbers
2019
Java Desktop
@HendrikEbbers
OMG!!!!!!
Java Desktop
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Content
• Desktop Apps today
• The Oracle Java client roadmap
• Webstart, Applets, Swing & AWT, jpackager
• JavaFX
@HendrikEbbers
Desktop Apps
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
App
build
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
Application
Build Tools
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
Runtime
UI Toolkit
3rdParty libs
Application
Build Tools
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
Runtime
UI Toolkit
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
Runtime
UI Toolkit
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Desktop Apps
Runtime
UI Toolkit
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps 2016
Oracle Java 8
3rdParty libs
Application
Build Tools
update
update
update
App
build Install
@HendrikEbbers
I just downloaded
Java 8 from Oracle
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Desktop Apps today
Java 8 / 11+
Java FX 8 / 11+
3rdParty libs
Application
Build Tools
update
update
update
update
App
build Install
@HendrikEbbers
I just want my
"Ask Toolbar Installer"
back!
@HendrikEbbers
What has suddenly
changed?
@HendrikEbbers
Java (Desktop)
Roadmap
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
• Oracle announced a roadmap for Java on desktop
last year (in March 2018)
https://bit.ly/2JiwELG
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"The application development market has shifted dramatically
over the past decade…
To address these requirements, Oracle proposed to shift Java
to a strict time-based release model, …
These changes create an opportunity to simplify and focus the
client roadmap going forward."
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
Java 9
Java 10
Java 11
Java 12
Java 13
Java 14
2018 2019 2020
Free
Oracle OpenJDK
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
Java 9
Java 10
Java 11
Java 12
Java 13
Java 14
2018 2019 2020
Java 8
Free
Commercial
Not Free in Prod
Oracle JDK
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"The application development market has shifted dramatically
over the past decade…
To address these requirements, Oracle proposed to shift Java
to a strict time-based release model, …
These changes create an opportunity to simplify and focus the
client roadmap going forward."
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"Swing and AWT will continue to be supported on
Java SE 8 through at least March 2025, and on Java
SE 11 (18.9 LTS) through at least September 2026."
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"Oracle will continue to commercially support Java
Web Start on Java SE 8 for commercial use, or when
used in conjunction with Oracle products that have a
Web Start dependency, through at least March 2025"
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"JavaFX new fixes will continue to be supported on
Java SE 8 through March 2022 and removed from
Java SE 11."
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
• Swing will be supported in future (commercial)
Java 8 and 11 updates
• We have no idea what will happen to Swing in
future Java LTS versions
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
• WebStart will be supported in future (commercial)
Java 8 updates
• WebStart is removed in Java 11
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
• JavaFX will be supported in future commercial Java
8 updates
• JavaFX is removed in Java 11
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle Java Desktop Roadmap
"Oracle has begun conversations with interested
parties in the Java ecosystem on the stewardship of
JavaFX, Swing and AWT beyond the above
referenced timeframes."
@HendrikEbbers
Java is not "only Oracle"
anymore
@HendrikEbbers
AWT & Swing
@HendrikEbbers
AWT & Swing
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Swing & AWT
• Swing and AWT won't used for new projects
anymore
• Stable APIs and no new features needed
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Swing & AWT
• But: the private API will change from time to time
• Replace native rendering engine based on os
changes
• Toolkits need support in future
• Who will do that???
@HendrikEbbers
JavaApplets
@HendrikEbbers
JavaApplets
@HendrikEbbers
JavaWebStart
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Webstart History
2000
JSR 56
Approval
2002
WebStart is
shipped with
Java 1.4
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Webstart History
2000
JSR 56
Approval
2002
WebStart is
shipped with
Java 1.4
2016
Development
of Java 9
started
Karakun DevHub_
@HendrikEbbersdev.karakun.com
History
Karakun DevHub_
@HendrikEbbersdev.karakun.com
History
"Developers of applications that rely on the Java browser plugin
need to consider alternative options such as migrating from Java Applets
(which rely on a browser plugin) to the plugin-free Java Web Start technology."
Oracle, 2016
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Webstart History
2000
JSR 56
Approval
2002
WebStart is
shipped with
Java 1.4
2016
Development
of Java 9
started
"Migrate to
WebStart"
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Webstart History
2000
JSR 56
Approval
2002
WebStart is
shipped with
Java 1.4
2016
Development
of Java 9
started
"Migrate to
WebStart"
Spring
2018
WebStart will
be removed
in future
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Webstart History
2000
JSR 56
Approval
2002
WebStart is
shipped with
Java 1.4
2016
Development
of Java 9
started
"Migrate to
WebStart"
Spring
2018
Autumn
2018
WebStart will
be removed
in future
@HendrikEbbers
Java is open source!
I don't care
@HendrikEbbers
Oracle Java != OpenJDK
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle JDK & OpenJDK
OpenJDK 8
JVM, tools, etc. JVM, tools, etc.
Exclusive Oracle
stuff
eg. Flight recorder
WebStart
Mission Control
Oracle JDK 8
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Oracle JDK & OpenJDK
OpenJDK 12 Oracle JDK 12
JVM, tools, etc.
equals JVM, tools, etc.
Karakun DevHub_
@HendrikEbbersdev.karakun.com
AdoptOpenJDK to the rescue!
Karakun DevHub_
@HendrikEbbersdev.karakun.com
AdoptOpenJDK to the rescue!
@HendrikEbbers
OpenWebStart
Karakun DevHub_
@HendrikEbbersdev.karakun.com
OpenWebStart
• Open source implementation of the JNLP Spec
• Based on IcedTeaWeb from RedHat
Karakun DevHub_
@HendrikEbbersdev.karakun.com
OpenWebStart
• Adds modern functionality to WebStart
• JVM manager integrated
WebStart Java 11.0.1 Java 11.0.2 Java 12.0.1
manage
@HendrikEbbers
openwebstart.com
@HendrikEbbers
Java Packaging Tool
Karakun DevHub_
@HendrikEbbersdev.karakun.com
jpackage
• Build native executables for your application
• Supports jlink
• You can use it today (with hacks)
• Beta in Java 14 & 15
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Java Packaging Tool
https://www.youtube.com/watch?v=JWwlGWlgxe0
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Alternative
@HendrikEbbers
JavaFX
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX today
• You can use JavaFX today without any problems
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX today
• You can use JavaFX today without any problems
• Since it is "just software" bugs will pop up over
time
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX today
• You can use JavaFX today without any problems
• Since it is "just software" bugs will pop up over
time
• … and security issues
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX today
• You can use JavaFX today without any problems
• Since it is "just software" bugs will pop up over
time
• … and security issues
• … and private API / native code must be changed
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX today
• Such issues must be targeted in future and LTS
versions
• Currently companies provides LTS support for
JavaFX 8 and 11
@HendrikEbbers
What version of
JavaFX are you
using?
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX support - Azul
https://docs.azul.com/zulu/zulurelnotes/ZuluReleaseNotes/CVE_Fixes_November19.htm
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX support - Oracle
https://bugs.openjdk.java.net/
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX support - Gluon
https://github.com/openjdk/jfx/blob/master/doc-files/release-notes-11.md
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX support - Bellsoft
https://bell-sw.com/pages/liberica-release-notes-11.0.5/
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 8 Issues
JDK-8215702
JDK-8215799
JDK-8213806
JDK-8218611
JDK-8217942
JDK-8207772
SVG gradients are not rendered
Complex text is not rendered by webkit on Windows
WebView - JVM crashes for given HTML
fast/xslt tests fails with "Unsupported encoding windows-1251" error
Upgrade to libxslt 1.1.33
File API and FileReader should be supported in WebView
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 8 Issues
Azul ZuluOracle JDK Amazon CorrettoGluon JavaFX
JDK-8215702
Bellsoft
JDK-8215799
JDK-8213806
JDK-8218611
JDK-8217942
JDK-8207772
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 8 @ AdoptOpenJDK
• We got often asked why we do not add JavaFX to
the Java 8 binaries
• We only want to provide secure / up-to-date
binaries
• There is not open source JavaFX 8 development
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11 Issues
Azul ZuluOracle JDK Amazon CorrettoGluon JavaFX
JDK-8229328
Bellsoft
JDK-8222912
JDK-8133841
JDK-8218611
JDK-8217942
JDK-8207772
V12/13
v12/13
v12/13
v12/13
v12/13
v12/13
V11
V11
V11
V11
V11
V11
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11+
• When using Java(FX) 11+ you should add JavaFX as
a dependency
• Using a JVM with integrated JavaFX is not the
preferred solution
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11+
• Maybe Oracle is only interested in JavaFX until the
LTS support of Java 8 ends
• Today Oracle needs to contribute to JavaFX (based
on the commercial support for Java 8)
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11+ binaries
JavaFX 11.0.1
JavaFX 12.0.1
JavaFX 12.0.2
JavaFX 11.0.2
JavaFX 13.0.1
JavaFX 13.0.2
JavaFX 14
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11+ binaries
JavaFX 11.0.1
JavaFX 12.0.1
JavaFX 12.0.2
JavaFX 11.0.2 JavaFX 11.0.3 JavaFX 11.0.4 JavaFX 11.0.5
JavaFX 13.0.1
JavaFX 13.0.2
JavaFX 14
LTS LTS LTS
backported
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 11+ sources
JavaFX 11.0.1 JavaFX 11.0.2 JavaFX 11.0.3 JavaFX 11.0.4 JavaFX 11.0.5
JavaFX 12.0.1
JavaFX 12.0.2 JavaFX 13.0.1
JavaFX 13.0.2
JavaFX 14
@HendrikEbbers
Kudos to
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• There is a good chance that JavaFX 14 will run with
Java 11
• No one knows if JavaFX 15 will still be compatible
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• If you want to stay on Java 11 you will need to pay
in future
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• If you want to stay on Java 11 you will need to pay
in future
• … or build JavaFX 11 on your own
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• If you want to stay on Java 11 you will need to pay
in future
• … or build JavaFX 11 on your own
• … or stay on an old version
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• If you want to stay on Java 11 you will need to pay
in future
• … or build JavaFX 11 on your own
• … or stay on an old version
• … or do a fork
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• If you want to stay on Java 11 you will need to pay
in future
• … or build JavaFX 11 on your own
• … or stay on an old version
• … or do a fork
@HendrikEbbers
Karakun DevHub_
@HendrikEbbersdev.karakun.com
JavaFX 14+
• Best: buy commercial support today
• … no downgrade from JavaFX 14 to 11 needed in
future
• … your money will help to fix issues today
@HendrikEbbers
If companies do not care

JavaFX will go away!
@HendrikEbbers
Homework
Karakun DevHub_
@HendrikEbbersdev.karakun.com
Homework
• Is my company interested in the future of JavaFX?
• Is my company interested in the future of Java
Desktop?
@HendrikEbbers
Thanks!
Questions?
@HendrikEbbers
• Check our website for developers

• Subscribe to our newsletter

dev.karakun.com | @HendrikEbbers
Karakun DevHub_
dev.karakun.com
https://dev.karakun.com
https://dev.karakun.com/subscribe/

Java Desktop 2019