Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java Desktop 2019

8 views

Published on

Some years ago development of Java Desktop applications was easy: We just downloaded Java 8 from Oracle and got a set of useful tools and framework to develop Java desktop applications:

AWT & Swing
WebStart
JavaFX
JFX Packager

If you now download a Java version from Oracle (or any other vendor) several of the mentioned tools and frameworks are gone. Some JDKs only contain AWT & Swing for desktop development and miss all the newer tools. But even if they include such tools or frameworks you have sometimes no idea about their state.

In this session I will give an overview about the differences between JDKs that you can use today and how frameworks like JavaFX are really supported by the vendors. Next to this we will have a look at all the tools that are important for building and installing desktop development. Since some like WebStart are gone you can find quite good alternatives.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Java Desktop 2019

  1. 1. @HendrikEbbers Karakun DevHub_ dev.karakun.com
  2. 2. @HendrikEbbers 2019 Java Desktop
  3. 3. Karakun DevHub_ @HendrikEbbersdev.karakun.com About me • Karakun Co-Founder • Founder of JUG Dortmund • JSR EG member • JavaOne Rockstar, Java Champion • AdoptOpenJDK TSC member
  4. 4. Karakun DevHub_ @HendrikEbbersdev.karakun.com About me
  5. 5. @HendrikEbbers 2019 Java Desktop
  6. 6. @HendrikEbbers OMG!!!!!! Java Desktop
  7. 7. Karakun DevHub_ @HendrikEbbersdev.karakun.com Content • Desktop Apps today • The Oracle Java client roadmap • Webstart, Applets, Swing & AWT, jpackager • JavaFX
  8. 8. @HendrikEbbers Desktop Apps
  9. 9. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps App build
  10. 10. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps App build Install
  11. 11. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps Application Build Tools App build Install
  12. 12. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps Runtime UI Toolkit 3rdParty libs Application Build Tools App build Install
  13. 13. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps Runtime UI Toolkit 3rdParty libs Application Build Tools update update update update App build Install
  14. 14. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps Runtime UI Toolkit 3rdParty libs Application Build Tools update update update update App build Install
  15. 15. Karakun DevHub_ @HendrikEbbersdev.karakun.com Desktop Apps Runtime UI Toolkit 3rdParty libs Application Build Tools update update update update App build Install
  16. 16. Karakun DevHub_ @HendrikEbbersdev.karakun.com Java Desktop Apps 2016 Oracle Java 8 3rdParty libs Application Build Tools update update update App build Install
  17. 17. @HendrikEbbers I just downloaded Java 8 from Oracle
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. @HendrikEbbers I just want my "Ask Toolbar Installer" back!
  29. 29. @HendrikEbbers What has suddenly changed?
  30. 30. @HendrikEbbers Java (Desktop) Roadmap
  31. 31. 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
  32. 32. 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."
  33. 33. 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
  34. 34. 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
  35. 35. 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."
  36. 36. 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."
  37. 37. 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"
  38. 38. 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."
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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."
  43. 43. @HendrikEbbers Java is not "only Oracle" anymore
  44. 44. @HendrikEbbers AWT & Swing
  45. 45. @HendrikEbbers AWT & Swing
  46. 46. Karakun DevHub_ @HendrikEbbersdev.karakun.com Swing & AWT • Swing and AWT won't used for new projects anymore • Stable APIs and no new features needed
  47. 47. 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???
  48. 48. @HendrikEbbers JavaApplets
  49. 49. @HendrikEbbers JavaApplets
  50. 50. @HendrikEbbers JavaWebStart
  51. 51. Karakun DevHub_ @HendrikEbbersdev.karakun.com Webstart History 2000 JSR 56 Approval 2002 WebStart is shipped with Java 1.4
  52. 52. 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
  53. 53. Karakun DevHub_ @HendrikEbbersdev.karakun.com History
  54. 54. 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
  55. 55. 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"
  56. 56. 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
  57. 57. 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
  58. 58. @HendrikEbbers Java is open source! I don't care
  59. 59. @HendrikEbbers Oracle Java != OpenJDK
  60. 60. 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
  61. 61. Karakun DevHub_ @HendrikEbbersdev.karakun.com Oracle JDK & OpenJDK OpenJDK 12 Oracle JDK 12 JVM, tools, etc. equals JVM, tools, etc.
  62. 62. Karakun DevHub_ @HendrikEbbersdev.karakun.com AdoptOpenJDK to the rescue!
  63. 63. Karakun DevHub_ @HendrikEbbersdev.karakun.com AdoptOpenJDK to the rescue!
  64. 64. @HendrikEbbers OpenWebStart
  65. 65. Karakun DevHub_ @HendrikEbbersdev.karakun.com OpenWebStart • Open source implementation of the JNLP Spec • Based on IcedTeaWeb from RedHat
  66. 66. 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
  67. 67. @HendrikEbbers openwebstart.com
  68. 68. @HendrikEbbers Java Packaging Tool
  69. 69. 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
  70. 70. Karakun DevHub_ @HendrikEbbersdev.karakun.com Java Packaging Tool https://www.youtube.com/watch?v=JWwlGWlgxe0
  71. 71. Karakun DevHub_ @HendrikEbbersdev.karakun.com Alternative
  72. 72. @HendrikEbbers JavaFX
  73. 73. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX today • You can use JavaFX today without any problems
  74. 74. 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
  75. 75. 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
  76. 76. 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
  77. 77. 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
  78. 78. @HendrikEbbers What version of JavaFX are you using?
  79. 79. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX support - Azul https://docs.azul.com/zulu/zulurelnotes/ZuluReleaseNotes/CVE_Fixes_November19.htm
  80. 80. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX support - Oracle https://bugs.openjdk.java.net/
  81. 81. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX support - Gluon https://github.com/openjdk/jfx/blob/master/doc-files/release-notes-11.md
  82. 82. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX support - Bellsoft https://bell-sw.com/pages/liberica-release-notes-11.0.5/
  83. 83. 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
  84. 84. 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
  85. 85. 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
  86. 86. 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
  87. 87. 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
  88. 88. 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)
  89. 89. 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
  90. 90. 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
  91. 91. 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
  92. 92. @HendrikEbbers Kudos to
  93. 93. 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
  94. 94. Karakun DevHub_ @HendrikEbbersdev.karakun.com JavaFX 14+ • If you want to stay on Java 11 you will need to pay in future
  95. 95. 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
  96. 96. 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
  97. 97. 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
  98. 98. 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
  99. 99. @HendrikEbbers
  100. 100. 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
  101. 101. @HendrikEbbers If companies do not care
 JavaFX will go away!
  102. 102. @HendrikEbbers Homework
  103. 103. 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?
  104. 104. @HendrikEbbers Thanks! Questions?
  105. 105. @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/

×