Java™ SE Development Kit 7, Update 21 (JDK 7u21)
The full version string for this update release is 1.7.0_21-b11 (where "b" means "build") except for Mac OS X for which it is 1.7.0_21-b12. The version number is 7u21.
This update release contains several enhancements and changes including the following:
Olson Data 2012i
JDK 7u21 contains Olson time zone data version 2012i. For more information, refer to Timezone Data Versions in the JRE Software.
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u21 are specified in the following table:
|JRE Family Version||JRE Security Baseline|
(Full Version String)
For more information about security baselines, see Deploying Java Applets With Family JRE Versions in Java Plug-in for Internet Explorer.
JRE Expiration Date
The expiration date for JRE 7u21 is 07/18/2013.
Oracle now manages a certificate and jar blacklist repository. This data is updated on client computers daily on the first execution of a Java applet or web start application.
In this release,
custom settings are removed from the Java Control Panel(JCP)'s Security Slider.
Depending on the security level set in the Java Control Panel and the user's version of the JRE, self-signed or unsigned applications might not be allowed to run. The default setting of High permits all but local applets to run on a secure JRE. If the user is running an insecure JRE, only applications that are signed with a certificate issued by a recognized certificate authority are allowed to run.
For more information, see the Security section of the Java Control Panel documentation.
For more information, see Mixing Privileged Code and Sandbox Code documentation.
The JDK 7u21 release enables users to make more informed decisions before running Rich Internet Applications (RIAs) by prompting users for permissions before an RIA is run. These permission dialogs include information on the certificate used to sign the application, the location of the application, and the level of access that the application requests. For more information, seeUser Acceptance of RIAs.
From this release, the RMI property
java.rmi.server.useCodebaseOnly is set to
true by default. In previous releases the default value was
This change of default value may cause RMI-based applications to break unexpectedly. The typical symptom is a stack trace that contains a
java.rmi.UnmarshalException containing a nested
For more information, see RMI Enhancements.
A new Server JRE package, with tools commonly required for server deployments but without the Java plug-in, auto-update or installer found in the regular JRE package, is available starting from this release. The Server JRE is specifically targeted for deploying Java in server environments and is available for 64-bit Solaris, Windows and Linux platforms. For more information on installing this package, see Installation Instructions.
Some of the tools included in the initial release of the Server JRE package, may not be available in future versions of the Server JRE. Please check future release notes for tools availability if you use this package.
JDk 7u21 release includes support for JDK for Linux on ARM. The product offers headful support for ARMv6 and ARMv7.
The following JDK features are not included or supported in this product:
- Java WebStart
- Java Plug-In
- Garbage First (G1) Collector
- JavaFX SDK or JavaFX Runtime
In addition, some features of the Serviceability Agent are also not available for Linux on ARM platform.
Java support on ARM is specific to the GNOME Desktop Environment version
On Windows platform, the decoding of command strings specified to
Runtime.exec(String,String,File) methods, has been improved to follow the specification more closely. This may cause problems for applications that are using one or more of these methods with commands that contain spaces in the program name, or are invoking these methods with commands that are not quoted correctly.
Runtime.getRuntime().exec("C:\\My Programs\\foo.exe bar") is an attempt to launch the program
"C:\\My" with the arguments
"bar". This command is likely to fail with an exception to indicate
"C:\My" cannot be found.
Runtime.getRuntime().exec("\"C:\\My Programs\\foo.exe\" bar") is an attempt to launch the program
"\"C:\\My". This command will fail with an exception to indicate the program has an embedded quote.
Applications that need to launch programs with spaces in the program name should consider using the variants of
Runtime.exec that allow the command and arguments to be specified in an array.
Alternatively, the preferred way to create operating systems processes since JDK 5.0 is using
ProcessBuilder class has a much more complete API for setting the environment, working directory and redirecting streams for the process.
This release contains fixes for security vulnerabilities. For more information, see Oracle Java SE Critical Patch Update Advisory.