JDK 8u40 has been released and is available from the Java SE Downloads page. See the JDK 8u40 Update Release Notes for details.
Java Tutorial Updates
The Java Tutorial has been updated to include a new lesson in the Deployment trail that describes how to use the Java packaging tools to generate self-contained applications. Self-contained applications are Java applications that are bundled with the JRE that is needed to run. These applications are installed on a user's local drive and launched in the same way as native applications. See Deploying Self-Contained Applications for more information.
JDK Tools Enhancements
JDK 8u40 contains many tools enhancements. See
Tools Enhancements in JDK 8 for details.
Starting with the JDK 8u40 release, JavaFX controls are enhanced to support assistive technologies, meaning that JavaFX controls are now accessible. In addition, a public API is provided to allow developers to write their own accessible controls.
Accessibility support is provided on Windows and Mac OS X platforms and includes:
- Support for reading JavaFX controls by a screen reader
- JavaFX controls are traversable using the keyboard
- Support for a special high-contrast mode that makes controls more visible to users.
JDK 8u40 also includes new JavaFX UI controls; a spinner control, formatted-text support, and a standard set of alert dialogs.
Spinner is a single line text field that lets the user select a number or an object value from an ordered sequence. See javafx.scene.control.Spinner class for more information.
TextFormatter class provides text formatting capablity for subclasses of
TextInputControl (for example,
TextArea). See javafx.scene.control.TextFormatter class for more information.
Dialog class allows applications to create their own custom dialogs. In addition, an an
Alert class is also provided, that extends
Dialog, and provides support for a number of pre-built dialog types that can be easily shown to users to prompt for a response. See javafx.scene.control.Dialog, javafx.scene.control.Alert, javafx.scene.control.TextInputDialog, and javafx.scene.control.ChoiceDialog classes for more information.
Application Class Data Sharing (AppCDS):
Application Class Data Sharing (AppCDS) extends CDS to enable you to place classes from the standard extensions directories and the application class path in the shared archive. This is a commercial feature and is no longer considered experimental (contrary to what is specified in the java tool documentation). See the
-XX:+UseAppCDS option in the java launcher tool page.
Cooperative Memory Management
Starting with JDK 8u40, the notion of "memory pressure" has been added to the JDK. Memory pressure is a property that represents the total memory usage (RAM) on the system. The higher the memory pressure, the closer the system is to running out of memory.
As a reaction to increased memory pressure, the JDK will try to reduce its memory usage. This is mainly done by reducing the Java heap size. The actions the JDK will take to reduce memory usage may lead to reduced performance. This is an intentional choice.
The pressure level is provided by the application through a JMX MXBean using a scale from 0 (no pressure) to 10 (almost out of memory). To enable this feature, the
jdk.management.cmm.SystemResourcePressureMXBean should be registered. The memory pressure is then set using the "MemoryPressure" attribute.
A new command line flag
-XX:MemoryRestriction that takes one of the arguments 'none', 'low', 'medium', or 'high', is also available. This flag will set the initial pressure in the JDK and will work also in cases where the MXBean is not registered.
Cooperative Memory Management requires the G1 GC (
-XX:+UseG1GC). This feature is not compatible with the flag
New Commercial Flags
Two new VM options are now available for commercial license holders:
- -XX:ResourceManagementSampleInterval=value (milliseconds)
For more information, see the
java tool page.
New MSI Installer Documentation
The Microsoft Windows Installer (MSI) Enterprise JRE Installer Guide is now available. The MSI Enterprise JRE Installer requires a commercial license for use in production. To learn more about commercial features and how to enable them, visit http://www.oracle.com/technetwork/java/javaseproducts.
Java Flight Recorder(JFR) Enhancements
It is now possible to enable Java Flight Recorder at runtime. For details, see the Java Flight Recorder Runtime Guide. Java Flight Recorder requires a commercial license for use in production. To learn more about commercial features and how to enable them, visit http://www.oracle.com/technetwork/java/javaseproducts.
Troubleshooting Guide Updates
The Troubleshooting Guide has been updated with new content for Troubleshooting using JMC, Troubleshooting Memory Leaks using JFR, and Troubleshooting Performance Issues using JFR.