SlideShare a Scribd company logo
© Copyright Azul Systems 2020
© Copyright Azul Systems 2015
@speakjava
How To Choose A JDK
Simon Ritter
Deputy CTO, Azul Systems
1
© Copyright Azul Systems 2020 2
© Copyright Azul Systems 2020
Java Platform Module System (JPMS)
 The core Java libraries are now a set of modules (JEP 220)
– 75 OpenJDK modules:
 24 Java SE
 2 aggregator modules
 1 smartcard (???)
 48 JDK
 Most internal APIs now encapsulated (JEP 260)
– sun.misc.Unsafe
– Some can be used with command line options
3
© Copyright Azul Systems 2020
JDK 9 Onwards And Compatibility
4
"Clean applications that just depend on java.se
should just work" - Oracle
© Copyright Azul Systems 2020
JDK 9: The Clean Up Starts
 Java has had deprecation since JDK 1.1
 453 deprecated elements in JDK 8
 Zero removed
 JDK 9
 6 methods removed from standard class libraries
 1 class removed from JAAS
 Redundant features eliminated (jhat, hprof agent)
 JDK 10
 1 package, 6 classes, 9 methods and 1 field
 More features will be removed in the future
 CMS GC, Nashorn and Pack200 all deprecated. Others?
5
© Copyright Azul Systems 2020
JDK 11: Modules Removed
– The java.se.ee aggregator-module has been removed
 java.corba
 java.transaction
 java.activation
 java.xml.bind
 java.xml.ws
 java.xml.ws.annotation
– Modules turned off in JDK 9
 Both compilation and runtime
6
© Copyright Azul Systems 2020
Compatibility Not Guaranteed
 New versions of Java may include breaking changes
– Anything for removal will be deprecated first
– Minimum of one release warning
 Could be only six months
7
© Copyright Azul Systems 2020
Moving Java Forward Faster
© Copyright Azul Systems 2020
OpenJDK: New Release Model
 A new version of the JDK is released every six months
– March and September
– 2018: JDK 10 and 11, 2019: JDK 12 and 13
– Continuing this year with JDK 14 and JDK 15
 OpenJDK development is more agile
– Previous target was a release every two years
 Features are only included when ready
– Targeted for a release when feature complete
9
© Copyright Azul Systems 2020
Long Term Support Releases
 Long term support for all releases is not practical
– One Long Term Support (LTS) release every three years
– For the Oracle JDK binary
 JDK 8 was classified as an LTS release
 Last JDK 8 public update in January 2019 for commercial users
 Non-commercial users get updates until December 2020
 JDK 11 is an LTS release
 JDK 9, 10, 12 and 13 were feature releases
 Updated only until next release
10
© Copyright Azul Systems 2020
Oracle JDK Binaries
 Traditional Oracle branded binary (java.oracle.com)
– Oracle Binary Code License (FoU restrictions)
 New Oracle OpenJDK binary (jdk.java.net)
– GPLv2 with CPE license (no restrictions)
– Security and bug fix updates only for six months
 Only until next JDK release
 Two scheduled updates
11
© Copyright Azul Systems 2020
Converged Binaries
Oracle JDK
OpenJDK
Java SE
JDK 10 and earlier
Java SE
OpenJDK
& Oracle JDK
JDK 11 and later
© Copyright Azul Systems 2020
Converged Binaries (JDK 11)
 Some closed-source parts of the JDK open-sourced
– Flight recorder
– Mission control
– Others
 Other closed-source parts removed
– Browser Plugin (Oracle support ceased March 2019)
– Java Web Start
– JavaFX
13
© Copyright Azul Systems 2020
Java Updates
 Oracle JDK binary has LTS versions (JDK 11, 17, etc.)
– Oracle OpenJDK only updated for six months
 Oracle JDK 11 released under a different license (OTNLA)
– Free for development and testing
– Requires a Java SE subscription for use in production
 JDK 8 can be used indefinitely for free
– But only JDK8u202 and earlier
– License for JDK8u211 and later is OTNLA
– If you download and use in production you can get audited
14
© Copyright Azul Systems 2020
Java Security
 CVE: Common Vulnerabilities and Exposures
 CVSS: Common Vulnerability Scoring System
 Base Score between 0 and 10
 Combination of Access Vector, Attack Complexity, Authentication
15
*All Software Platforms, including Java
High
Critical
© Copyright Azul Systems 2020
How Important Are Updates?
CPU Date Highest CVSS Impacted JDK
Versions
January 2020
October 2019
July 2019
8.1
6.8 (multiple)
6.8
7,8,11,13
7,8,11,13
7,8,11,12
April 2019 9.0 8
January 2019 6.1 6,7,8,11
October 2018 9.0 8,11
July 2018 5.9 6,7,8,10
April 2018 8.3 6,7,8,9,10
January 2018 8.3 (multiple) 6,7,8,9
October 2017 9.6 (multiple) 6,7,8,9
July 2017 9.6 (multiple) 7,8
April 2017 8.3 (multiple) 6,7,8
January 2017 9.6 (multiple) 7,8
© Copyright Azul Systems 2020
OpenJDK Vulnerability Group
 Secure, private forum
– Trusted members of OpenJDK
– Receive reports of vulnerabilities and review them
– Collaborate on producing fixes
– Co-ordinate release of fixes
 Main OpenJDK distributors represented
 Oracle, Red Hat, Azul, Amazon, IBM, AdoptOpenJDK, SAP,
BellSoft, Twitter
© Copyright Azul Systems 2020
JCP Golden Triangle
Specifications (JSRs)
Reference
Implementation (RI)
Technology
Compatibility Kit
(TCK)
Can you build it?
Is the spec.
unambiguous?
Does the RI conform to the spec?
© Copyright Azul Systems 2020
JDK Testing
 Java Standard Edition (SE)
– The specification
 JSR 379, 383, 384, 386, 388, 389, 390
– Reference implementation
 OpenJDK
– Technology Compatibility Kit (TCK)
 Sometimes referred to as the Java Compatibility Kit (JCK)
 Over 150,000 tests
 Licensed under Oracle Community TCK License Agreement (OCTLA)
19
© Copyright Azul Systems 2020
CPU and PSU
 Oracle provide two versions of each update
 Critical Patch Update (CPU)
– Only security related patches
– Designed for quick roll out with minimal testing
– Ensure maximum level of security protection
 Patch Set Update (PSU)
– All updates: Security, bug-fix, enhancement
– User can run full regression tests before deployment
– Ensure maximum level of stability
20
© Copyright Azul Systems 2020
Alternative OpenJDK
Binaries
© Copyright Azul Systems 2020
© Copyright Azul Systems 2020
AdoptOpenJDK
 Started in 2017
 Free community builds of OpenJDK and OpenJ9
 Supporting some more esoteric platforms
– AIX on PPC
– Solaris on SPARC and x64
– Linux on S390
 Many commercial sponsors (including Azul as platinum)
23
© Copyright Azul Systems 2020
Zulu Community
 Azul’s FREE binary distribution of OpenJDK
– Passes all TCK tests
 JDK 7, 8, 9, 10, 11, 12 and 13 available
– JDK 14 and 15 in Early Access
 Wide platform support:
– Intel 64-bit Windows, Mac, Linux
– Intel 32-bit Windows and Linux
– ARM 32 and 64-bit
24
www.azul.com/downloads/zulu
© Copyright Azul Systems 2020
Zulu Enterprise
 Enhanced build of OpenJDK source code
 Fully TCK tested
 JDK 6, 7, 8 and 11
 TLS1.3, Flight Recorder backports
 Wide platform support:
 Intel 64-bit Windows, Mac, Linux
 Intel 32-bit Windows and Linux
 Verified non-contaminating (GPL) builds
 24x7x365 support call logging
– Follow-the-sun resolution
25
© Copyright Azul Systems 2020
Summary
© Copyright Azul Systems 2020
Choosing Your Java Distribution
 Does the provider deliver:
– TCK tested binaries?
– Updates within a time defined by an SLA?
– All security patches and bug fixes for all updates?
– CPUs, PSUs or both?
– Is there someone to call if you have a problem?
27
© Copyright Azul Systems 2020
© Copyright Azul Systems 2015
@speakjava
Thank You
Simon Ritter
Deputy CTO, Azul Systems
28

More Related Content

What's hot

It's Java, Jim, but not as we know it
It's Java, Jim, but not as we know itIt's Java, Jim, but not as we know it
It's Java, Jim, but not as we know it
Simon Ritter
 
Whats New For Developers In JDK 9
Whats New For Developers In JDK 9Whats New For Developers In JDK 9
Whats New For Developers In JDK 9
Simon Ritter
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!
Simon Ritter
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
Baruch Sadogursky
 
Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8
Simon Ritter
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
Doug Hawkins
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classes
Luca D'Onofrio
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8
Simon Ritter
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoinknight1128
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureAlexey Buzdin
 
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
DevelopIntelligence
 
Python Evolution
Python EvolutionPython Evolution
Python Evolution
Quintagroup
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
GuardSquare
 
Reactive programming with RxAndroid
Reactive programming with RxAndroidReactive programming with RxAndroid
Reactive programming with RxAndroid
Savvycom Savvycom
 
RxJava 2.0 介紹
RxJava 2.0 介紹RxJava 2.0 介紹
RxJava 2.0 介紹
Kros Huang
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
GuardSquare
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVM
Marcus Hirt
 

What's hot (20)

It's Java, Jim, but not as we know it
It's Java, Jim, but not as we know itIt's Java, Jim, but not as we know it
It's Java, Jim, but not as we know it
 
Whats New For Developers In JDK 9
Whats New For Developers In JDK 9Whats New For Developers In JDK 9
Whats New For Developers In JDK 9
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!
 
Pure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools RacePure Java RAD and Scaffolding Tools Race
Pure Java RAD and Scaffolding Tools Race
 
Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8Lessons Learnt With Lambdas and Streams in JDK 8
Lessons Learnt With Lambdas and Streams in JDK 8
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Eclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classesEclipse Training - Main eclipse ecosystem classes
Eclipse Training - Main eclipse ecosystem classes
 
Java 5 and 6 New Features
Java 5 and 6 New FeaturesJava 5 and 6 New Features
Java 5 and 6 New Features
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
Whats New in Java 5, 6, & 7 (Webinar Presentation - June 2013)
 
Python Evolution
Python EvolutionPython Evolution
Python Evolution
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Reactive programming with RxAndroid
Reactive programming with RxAndroidReactive programming with RxAndroid
Reactive programming with RxAndroid
 
RxJava 2.0 介紹
RxJava 2.0 介紹RxJava 2.0 介紹
RxJava 2.0 介紹
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Production Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVMProduction Time Profiling and Diagnostics on the JVM
Production Time Profiling and Diagnostics on the JVM
 
Java 7 New Features
Java 7 New FeaturesJava 7 New Features
Java 7 New Features
 

Similar to How to Choose a JDK

Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?
Simon Ritter
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changing
Simon Ritter
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
Simon Ritter
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14Ivan Krylov
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing models
Mark West
 
2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes
Neil Brown
 
Java11 terms of_use
Java11 terms of_useJava11 terms of_use
Java11 terms of_use
Maksym Govorischev
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
Simon Ritter
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
Jamie Coleman
 
Java SE Subscription Workshop
Java SE Subscription WorkshopJava SE Subscription Workshop
Java SE Subscription Workshop
MarketingArrowECS_CZ
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11
Wolfgang Weigend
 
Eclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersEclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developers
Ian Skerrett
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
Wolfgang Weigend
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
Wolfgang Weigend
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?
Simon Ritter
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Project
gustavoeliano
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Status
gustavoeliano
 

Similar to How to Choose a JDK (20)

Is Java Still Free?
Is Java Still Free?Is Java Still Free?
Is Java Still Free?
 
Java Support: What's changing
Java Support:  What's changingJava Support:  What's changing
Java Support: What's changing
 
JDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and BeyondJDK 9, 10, 11 and Beyond
JDK 9, 10, 11 and Beyond
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing models
 
2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes2018 10-oracle-java-licensing-update-support-changes
2018 10-oracle-java-licensing-update-support-changes
 
Java11 terms of_use
Java11 terms of_useJava11 terms of_use
Java11 terms of_use
 
Java Is Still Free
Java Is Still FreeJava Is Still Free
Java Is Still Free
 
Open Source In The World Of Java
Open Source In The World Of JavaOpen Source In The World Of Java
Open Source In The World Of Java
 
Java SE Subscription Workshop
Java SE Subscription WorkshopJava SE Subscription Workshop
Java SE Subscription Workshop
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11It's a jdk jungle out there - JDK 11 and OpenJDK 11
It's a jdk jungle out there - JDK 11 and OpenJDK 11
 
Eclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developersEclipse IoT: Open source technology for IoT developers
Eclipse IoT: Open source technology for IoT developers
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?Is An Agile Standard Possible For Java?
Is An Agile Standard Possible For Java?
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Project
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Status
 

More from Simon Ritter

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native Compiler
Simon Ritter
 
Java On CRaC
Java On CRaCJava On CRaC
Java On CRaC
Simon Ritter
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
Simon Ritter
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
Simon Ritter
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
Simon Ritter
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
Simon Ritter
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
Simon Ritter
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
Simon Ritter
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep Dive
Simon Ritter
 
JDK 9 Deep Dive
JDK 9 Deep DiveJDK 9 Deep Dive
JDK 9 Deep Dive
Simon Ritter
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for Java
Simon Ritter
 
JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?
Simon Ritter
 
JDK 9: Migrating Applications
JDK 9: Migrating ApplicationsJDK 9: Migrating Applications
JDK 9: Migrating Applications
Simon Ritter
 
Building a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVMBuilding a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVM
Simon Ritter
 
JDK 9: 55 New Features
JDK 9: 55 New FeaturesJDK 9: 55 New Features
JDK 9: 55 New Features
Simon Ritter
 
Streams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The UglyStreams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The Ugly
Simon Ritter
 

More from Simon Ritter (16)

Cloud Native Compiler
Cloud Native CompilerCloud Native Compiler
Cloud Native Compiler
 
Java On CRaC
Java On CRaCJava On CRaC
Java On CRaC
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
 
Java performance monitoring
Java performance monitoringJava performance monitoring
Java performance monitoring
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Building a Better JVM
Building a Better JVMBuilding a Better JVM
Building a Better JVM
 
The Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans TechnologyThe Latest in Enterprise JavaBeans Technology
The Latest in Enterprise JavaBeans Technology
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
 
JDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep DiveJDK 9 and JDK 10 Deep Dive
JDK 9 and JDK 10 Deep Dive
 
JDK 9 Deep Dive
JDK 9 Deep DiveJDK 9 Deep Dive
JDK 9 Deep Dive
 
JDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for JavaJDK 9: The Start of a New Future for Java
JDK 9: The Start of a New Future for Java
 
JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?JDK 9: Mission Accomplished. What Next For Java?
JDK 9: Mission Accomplished. What Next For Java?
 
JDK 9: Migrating Applications
JDK 9: Migrating ApplicationsJDK 9: Migrating Applications
JDK 9: Migrating Applications
 
Building a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVMBuilding a Brain with Raspberry Pi and Zulu Embedded JVM
Building a Brain with Raspberry Pi and Zulu Embedded JVM
 
JDK 9: 55 New Features
JDK 9: 55 New FeaturesJDK 9: 55 New Features
JDK 9: 55 New Features
 
Streams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The UglyStreams: The Good, The Bad And The Ugly
Streams: The Good, The Bad And The Ugly
 

Recently uploaded

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

How to Choose a JDK

  • 1. © Copyright Azul Systems 2020 © Copyright Azul Systems 2015 @speakjava How To Choose A JDK Simon Ritter Deputy CTO, Azul Systems 1
  • 2. © Copyright Azul Systems 2020 2
  • 3. © Copyright Azul Systems 2020 Java Platform Module System (JPMS)  The core Java libraries are now a set of modules (JEP 220) – 75 OpenJDK modules:  24 Java SE  2 aggregator modules  1 smartcard (???)  48 JDK  Most internal APIs now encapsulated (JEP 260) – sun.misc.Unsafe – Some can be used with command line options 3
  • 4. © Copyright Azul Systems 2020 JDK 9 Onwards And Compatibility 4 "Clean applications that just depend on java.se should just work" - Oracle
  • 5. © Copyright Azul Systems 2020 JDK 9: The Clean Up Starts  Java has had deprecation since JDK 1.1  453 deprecated elements in JDK 8  Zero removed  JDK 9  6 methods removed from standard class libraries  1 class removed from JAAS  Redundant features eliminated (jhat, hprof agent)  JDK 10  1 package, 6 classes, 9 methods and 1 field  More features will be removed in the future  CMS GC, Nashorn and Pack200 all deprecated. Others? 5
  • 6. © Copyright Azul Systems 2020 JDK 11: Modules Removed – The java.se.ee aggregator-module has been removed  java.corba  java.transaction  java.activation  java.xml.bind  java.xml.ws  java.xml.ws.annotation – Modules turned off in JDK 9  Both compilation and runtime 6
  • 7. © Copyright Azul Systems 2020 Compatibility Not Guaranteed  New versions of Java may include breaking changes – Anything for removal will be deprecated first – Minimum of one release warning  Could be only six months 7
  • 8. © Copyright Azul Systems 2020 Moving Java Forward Faster
  • 9. © Copyright Azul Systems 2020 OpenJDK: New Release Model  A new version of the JDK is released every six months – March and September – 2018: JDK 10 and 11, 2019: JDK 12 and 13 – Continuing this year with JDK 14 and JDK 15  OpenJDK development is more agile – Previous target was a release every two years  Features are only included when ready – Targeted for a release when feature complete 9
  • 10. © Copyright Azul Systems 2020 Long Term Support Releases  Long term support for all releases is not practical – One Long Term Support (LTS) release every three years – For the Oracle JDK binary  JDK 8 was classified as an LTS release  Last JDK 8 public update in January 2019 for commercial users  Non-commercial users get updates until December 2020  JDK 11 is an LTS release  JDK 9, 10, 12 and 13 were feature releases  Updated only until next release 10
  • 11. © Copyright Azul Systems 2020 Oracle JDK Binaries  Traditional Oracle branded binary (java.oracle.com) – Oracle Binary Code License (FoU restrictions)  New Oracle OpenJDK binary (jdk.java.net) – GPLv2 with CPE license (no restrictions) – Security and bug fix updates only for six months  Only until next JDK release  Two scheduled updates 11
  • 12. © Copyright Azul Systems 2020 Converged Binaries Oracle JDK OpenJDK Java SE JDK 10 and earlier Java SE OpenJDK & Oracle JDK JDK 11 and later
  • 13. © Copyright Azul Systems 2020 Converged Binaries (JDK 11)  Some closed-source parts of the JDK open-sourced – Flight recorder – Mission control – Others  Other closed-source parts removed – Browser Plugin (Oracle support ceased March 2019) – Java Web Start – JavaFX 13
  • 14. © Copyright Azul Systems 2020 Java Updates  Oracle JDK binary has LTS versions (JDK 11, 17, etc.) – Oracle OpenJDK only updated for six months  Oracle JDK 11 released under a different license (OTNLA) – Free for development and testing – Requires a Java SE subscription for use in production  JDK 8 can be used indefinitely for free – But only JDK8u202 and earlier – License for JDK8u211 and later is OTNLA – If you download and use in production you can get audited 14
  • 15. © Copyright Azul Systems 2020 Java Security  CVE: Common Vulnerabilities and Exposures  CVSS: Common Vulnerability Scoring System  Base Score between 0 and 10  Combination of Access Vector, Attack Complexity, Authentication 15 *All Software Platforms, including Java High Critical
  • 16. © Copyright Azul Systems 2020 How Important Are Updates? CPU Date Highest CVSS Impacted JDK Versions January 2020 October 2019 July 2019 8.1 6.8 (multiple) 6.8 7,8,11,13 7,8,11,13 7,8,11,12 April 2019 9.0 8 January 2019 6.1 6,7,8,11 October 2018 9.0 8,11 July 2018 5.9 6,7,8,10 April 2018 8.3 6,7,8,9,10 January 2018 8.3 (multiple) 6,7,8,9 October 2017 9.6 (multiple) 6,7,8,9 July 2017 9.6 (multiple) 7,8 April 2017 8.3 (multiple) 6,7,8 January 2017 9.6 (multiple) 7,8
  • 17. © Copyright Azul Systems 2020 OpenJDK Vulnerability Group  Secure, private forum – Trusted members of OpenJDK – Receive reports of vulnerabilities and review them – Collaborate on producing fixes – Co-ordinate release of fixes  Main OpenJDK distributors represented  Oracle, Red Hat, Azul, Amazon, IBM, AdoptOpenJDK, SAP, BellSoft, Twitter
  • 18. © Copyright Azul Systems 2020 JCP Golden Triangle Specifications (JSRs) Reference Implementation (RI) Technology Compatibility Kit (TCK) Can you build it? Is the spec. unambiguous? Does the RI conform to the spec?
  • 19. © Copyright Azul Systems 2020 JDK Testing  Java Standard Edition (SE) – The specification  JSR 379, 383, 384, 386, 388, 389, 390 – Reference implementation  OpenJDK – Technology Compatibility Kit (TCK)  Sometimes referred to as the Java Compatibility Kit (JCK)  Over 150,000 tests  Licensed under Oracle Community TCK License Agreement (OCTLA) 19
  • 20. © Copyright Azul Systems 2020 CPU and PSU  Oracle provide two versions of each update  Critical Patch Update (CPU) – Only security related patches – Designed for quick roll out with minimal testing – Ensure maximum level of security protection  Patch Set Update (PSU) – All updates: Security, bug-fix, enhancement – User can run full regression tests before deployment – Ensure maximum level of stability 20
  • 21. © Copyright Azul Systems 2020 Alternative OpenJDK Binaries
  • 22. © Copyright Azul Systems 2020
  • 23. © Copyright Azul Systems 2020 AdoptOpenJDK  Started in 2017  Free community builds of OpenJDK and OpenJ9  Supporting some more esoteric platforms – AIX on PPC – Solaris on SPARC and x64 – Linux on S390  Many commercial sponsors (including Azul as platinum) 23
  • 24. © Copyright Azul Systems 2020 Zulu Community  Azul’s FREE binary distribution of OpenJDK – Passes all TCK tests  JDK 7, 8, 9, 10, 11, 12 and 13 available – JDK 14 and 15 in Early Access  Wide platform support: – Intel 64-bit Windows, Mac, Linux – Intel 32-bit Windows and Linux – ARM 32 and 64-bit 24 www.azul.com/downloads/zulu
  • 25. © Copyright Azul Systems 2020 Zulu Enterprise  Enhanced build of OpenJDK source code  Fully TCK tested  JDK 6, 7, 8 and 11  TLS1.3, Flight Recorder backports  Wide platform support:  Intel 64-bit Windows, Mac, Linux  Intel 32-bit Windows and Linux  Verified non-contaminating (GPL) builds  24x7x365 support call logging – Follow-the-sun resolution 25
  • 26. © Copyright Azul Systems 2020 Summary
  • 27. © Copyright Azul Systems 2020 Choosing Your Java Distribution  Does the provider deliver: – TCK tested binaries? – Updates within a time defined by an SLA? – All security patches and bug fixes for all updates? – CPUs, PSUs or both? – Is there someone to call if you have a problem? 27
  • 28. © Copyright Azul Systems 2020 © Copyright Azul Systems 2015 @speakjava Thank You Simon Ritter Deputy CTO, Azul Systems 28

Editor's Notes

  1. FoU = Field of Use. restriction prevented people using Java in embedded applications without buying a license. CPE = Classpath Exception. Eliminates the problem of the GPL license being viral, which would require you to make the source code for your application available.
  2. Late 2018 probably means JDK 11, which comes out in September. The idea of eliminating differences is so that the two binaries from Oracle (reference last slide) will be functionaly the same.