The following enhancements were introduced in JDK 8u20:
The javafxpackager
tool has been renamed to javapackager
. This tool has been enhanced with new arguments for self-contained application bundlers. See JDK-8041516.
Enhancements related to the java
launcher tool:
Experimental JIT compiler options related to Restricted Transactional Memory (RTM) have been added. See JDK-8031320.
Options related to string deduplication have been added. See JDK-8029075.
Options related to Advanced Encryption Standard (AES) intrinsics have been added. See JDK-8034899.
Rarely used combinations of garbage collection options have been deprecated. See JDK-8026909.
The following enhancements were introduced in JDK 8:
The jjs
command was introduced, which invokes the
Nashorn engine either in interactive shell mode, or to interpret
script files. For more information, see the Nashorn User's
Guide.
The java
command is capable of launching JavaFX
applications, provided that the JavaFX application is packaged
correctly. See How Classes are
Found.
The java command man page (both nroff and HTML) has been completely reworked. The advanced options are now divided into Runtime, Compiler, Garbage Collection, and Serviceability, according to the area that they affect. Several previously missing options are now described. There is also a section for options that were deprecated or removed since the previous release.
The new jdeps command-line tool allows the developer to analyze class files to determine package-level or class-level dependencies. See JDK-8003562.
JDK 8 provides remote access to diagnostic commands which were
previously accessible only locally via the jcmd tool.
Remote access is provided using the Java Management Extensions
(JMX), so diagnostic commands are exposed to a platform MBean
registered to the platform MBean server. The MBean is the
com.sun.management.DiagnosticCommandMBean interface. See
the jcmd documentation for
Solaris, Linux, and OS X or
Windows.
The jarsigner
tool contains a new option
-tsapolicyid
which enables you to request a signed
time stamp from a Time Stamping Authority and attach it to a signed
JAR file. See JDK-8009636
You can obtain the names of the formal parameters of any method
or constructor with the method
java.lang.reflect.Executable.getParameters
. However,
.class
files do not store formal parameter names by
default. To store formal parameter names in a particular
.class
file, and thus enable the Reflection API to
retrieve formal parameter names, compile the source file with the
-parameters
option of the javac
compiler.
See
JDK-8004727.
The type rules for binary comparisons in the Java Language Specification (JLS) Section 15.21 will now be correctly enforced by javac. Since JDK5, javac has accepted some programs with Object-primitive comparisons that are incorrectly typed according to JLS 15.21. These comparisons will now be correctly identified as type errors. See JDK-8013357.
The apt tool and its associated API contained in the
package com.sun.mirror have been removed in this release.
Use the options available in the javac tool and the APIs contained in
the packages javax.annotation.processing
and javax.lang.model
to process annotations. See JDK-7041249
For enhancements pertaining to the javadoc tool, see the What's New page for Javadoc.