In the ever-evolving landscape of Java Development Kit (JDK), JDK 20.0.1 has brought forth a range of crucial updates, addressing issues and introducing new functionalities. This article will dive into the significant changes in this release, offering a comprehensive overview for developers and users alike.
Restoring Missing /usr/java/default Symlink on Linux (JDK-8306690)
One of the known issues addressed in JDK 20.0.1 relates to the /usr/java/default
symlink on Linux platforms. Previously, this symlink was not created by RPM installers on Linux platforms, a functionality that had been inadvertently removed. This symlink is supposed to be created if it doesn’t exist, with the target being the /usr/java/latest
symlink. As a workaround for this issue, software relying on the /usr/java/default
symlink will need to manually configure it until the fix is delivered in the RPM installer0/usr/java/defaultsymlink is not created by RPM installers on Linux platforms. This symlink is supposed to be created if it doesn't exist with the target being the
/usr/java/latestsymlink. This functionality was accidentally removed. Software relying on the
/usr/java/default symlink need to manually configure it until the fix is delivered in the RPM installer","pub_date":null}}
.
System Property to Handle HTML ObjectView Creation (JDK-8296832)
An important update in JDK 20.0.1 is a system property to handle HTML ObjectView creation, which impacts Swing components like JLabels and JButtons. These components try to interpret application text as HTML to enable styled text. However, JDK 20.0.1 has made a change where the HTML processing of the text for these components will no longer recognize the <object>
tag, which allows for subclasses of java.awt.Component
to be rendered on the component. To re-enable this, applications must specify -Dswing.html.object=true
0<object>tag which allows for subclasses of
java.awt.Componentto be rendered on the component. To re-enable this, applications must specify
-Dswing.html.object=true”,”pub_date”:null}}`.
Addition of Certigna(Dhimyotis) Root CA Certificate (JDK-8245654)
In terms of security, JDK 20.0.1 has added the Certigna(Dhimyotis) Root CA Certificate to the cacerts truststore. This inclusion fortifies the truststore and further expands the scope of trusted certificates3.
Change in File::listRoots to Return All Available Drives on Windows (JDK-8208077)
The behavior of the method java.io.File.listRoots()
on Microsoft Windows has been updated in JDK 20.0.1. The returned array now includes a File
object for all available disk drives. This marks a shift from JDK 10 to JDK 20, where this method filtered out disk drives that were not accessible or did not have media present. This change circumvents performance issues observed in previous releases and ensures that the method aligns with the root directories in the iteration returned by FileSystem.getDefault().getRootDirectories()
0java.io.File.listRoots()on Microsoft Windows has changed in this release so that the returned array includes a
Fileobject for all available disk drives. This differs from the behavior in JDK 10 to JDK 20, where this method filtered out disk drives that were not accessible or did not have media present. This change avoids performance issues observed in the previous releases and also ensures that the method is consistent with the root directories in the iteration returned by
FileSystem.getDefault().getRootDirectories”,”pub_date”:null}}`.
The JDK 20.0.1 release embodies a critical step forward in the JDK development journey. By addressing key issues and introducing new functionalities, it continues to evolve and refine the Java ecosystem. As developers and users, staying updated with these changes is vital to optimize usage and application development.