Oracle Releases Java Se 7 Update 4 Javafx For Mac
Java SE 7 Update 4 and JavaFX 2.1 run on Windows, too. The company plans to release a consumer version of Java SE 7, complete with the Java Runtime Environment, for Mac OS X later this year. Check out Oracle's two-year plan for Java, which covers multiple variations of the platform. Subscribe to InfoWorld's Enterprise Java newsletter for.
Macs are finally welcome to the regular Java update train.
By Santhosh Reddy WILLY
NOW JAVA IN MAC
Oracle released Java SE 7 Update 4 this week, which finally gives Mac owners the means to receive critical Java security patches at the same time they’re available for users of Windows and Linux operating systems. The new release means that OS X should be receiving regular Java updates directly from the source—helping to prevent attacks like the recent Flashback infection—as well as a fully supported Java development environment.
Before this week, Apple built and released a version of Java for OS X on its own, and often lagged weeks or months behind Oracle in pushing out updates that patched serious security holes. However, Apple deprecated its own Java Virtual Machine (JVM) and other tools in 2010. Though the company committed to maintaining Java for Leopard and Snow Leopard, it warned that “developers should not rely on the Apple-supplied Java runtime being present in future versions of Mac OS X.”
Former Apple CEO Steve Jobs explained the reasoning behind the change in an e-mail to a concerned Java developer in late 2010. “Sun (now Oracle) supplies Java for all other platforms,” Jobs reportedly wrote. “They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it.”
In other words, Oracle was responsible for Java development on Windows, Linux, and other platforms, and would be going forward for OS X as well.
However, updates for Java on the Mac continued to lag behind other platforms. This lag is largely responsible for the recent Flashback trojan infection which created a botnet of more than half a million Macs. Though Oracle had long since patched the hole that was exploited for the attack, the patch hadn’t made its way into versions for Snow Leopard or Lion.
Beginning in the latest update to Java SE 7, however, Oracle has made OS X (from Lion forward) a fully supported platform for both Java deployment—including a Java Platform 1.7 compliant JVM—and Java development. Update 4 includes a full OS X version of the Java Development Kit (JDK) and JavaFX 2.1.
According to Henrik Stahl, Oracle’s senior director of Product Management for the Java platform, there are some remaining issues related to packaging and debugging tools, and the Java Plugin and Web Start features “will be added in subsequent releases.” Still, Oracle JDK and Java FX are “considered standard Oracle releases” and are fully supported.
“Future release of the Oracle JDK and JavaFX on Mac will follow the normal JDK release train with 4-6 releases every year,” Stahl wrote on his blog. “The next major milestone is JDK 7 Update 6 where we plan to add support for Plugin and Web Start. JDK 8 will of course also support Mac OS X.”
Until the Web plugin is available from Oracle, however, Mac users may still be vulnerable to attacks based on Java exploits. Users who don’t update to Oracle’s version and still rely on Apple’s deprecated version, could face a similar security vulnerability. The good news is that Oracle offers automated update tools, so applying patches should be a no-brainer for Lion users and beyond from now on.
Java Platform JDK 7u4, JavaFX 2.1, and Netbeans are available to download now, and support OS X 10.7. The Mac port of Java will also be maintained as open source under the OpenJDK project.
Known Issues for JDK 8
This section describes known issues in this release. Issues from the previous release that have been resolved in this release are also identified.
The following are links to the release notes contained in this page:
Known Issues
Area: Install / Linux
Installing a 1.8.0 JRE rpms on a Linux host where an older revision of the JRE rpm was previously installed may experience problems. Prior releases of the JRE may be leaving files and directories which conflict with the 1.8.0 rpm and raise an error, such as:
This behavior can be overridden using the --force
flag, which ignores package and file conflicts.
Syntax: rpm <rpm commands> --force <rpm-package-name>.rpm
Example: rpm -i --force jre-1.8.0-fcs.x86_64.rpm
Area: Install / Solaris
During installation of SUNWj8rt and SUNWj8dev packages on Solaris, chksum errors may occur, causing partial installation failure, for example:
Though legitimate checksum errors may be thrown for other reasons, the errors above are limited to specific network configurations that are believed to be rare.
The errors do not affect core functionality. The install has completed successfully.
Area: Install / Windows
The 'Enable Java Access Bridge' check box gets removed from the Control Panel (go to Control Panel -> Ease of Access Center -> Use the computer without a display) when the 64-bit JRE 8 is uninstalled, even if a 32-bit JRE version 7u6 or later exists. The workaround is to uninstall the existing 32-bit JRE and install it again. The 'Enable Java Access Bridge' check box will appear after the 32-bit JRE version 7u6 or later is installed.
- Bug
Area: Deploy
If an application uses RMI and runs in a restricted environment (ie. Java Plug-in, Java Web Start), it may not work. In particular, if you run a UI from an RMI callback, a NullPointerException
is likely to be thrown.
- Bug
Area: Deploy
In some circumstances, the Java Control Panel reports the JRE platform version as 1.7 instead of 1.8 when upgrading an older JRE in the same path. This should not impact Windows or Linux users, but could impact Mac OS X users. If an applet requests version 1.8 in a JNLP file or an HTML applet tag, then the applet fails or loads resources for an older JRE than intended. To work around this issue, either delete the deployment.properties
file, or edit the deployment.properties
file and remove the JRE entry.
Area: Deploy / Mac OS X
When running on OS X 10.9, certain actions in the Java Control Panel requiring administrative privileges do not work properly. Currently this impacts two features: disabling the Java Plug-in and disabling automatic update checks. The plugin will be disabled for the current user if the authorization dialog is cancelled, so users may still disable it but each user on the system will have to do so individually. There is no known workaround for disabling the automatic update check.
- Bug
Area: Deploy / Plug-In
Using the family CLSID
to trigger loading of an applet does not work with certain JRE family versions.
If you use the family CLSID
to trigger loading of an applet with a certain JRE family version, the family CLISD
will be ignored and the latest JRE version installed on your system is used to load the applet instead. Family CLSID
is specific to Internet Explorer. The workaround is to use the java_version
applet parameter or the version
attribute of the Java element in JNLP file instead.
Area: Deploy / Plug-In
Regression: JARSigningException
exception throws when use 7u jarsigner
.
JAR files signed with jarsigner
from Java SE 1.4 or earlier versions, will not be signed properly when they contain resource files in META-INF,
such as license docs or images.
For security purposes, such JARs are no longer considered to be validly signed. Currently applets using these JARs will fail to load, with no indication of the cause to the end user.
The only workaround is to re-sign the JAR with the current version of jarsigner
.
Area: Deploy / Plug-In
For signed jars without the manifest attribute 'Permissions', there is still a security warning dialog before the Application Error (or Blocked) dialog.
If the signed main JAR file does not contain the required 'Permissions' attribute in the manifest file, the application should be blocked. However the security dialog is shown first, asking the user's permission to run the application, before the application is blocked.
- Bug
Area: Deploy / Plug-In
If a user has the deployment.security.level
property set to MEDIUM when using JDK 7, the property is automatically upgraded to HIGH the first time that JDK 8 is used to run any deployment code. However, if there is also a system configuration setting for the deployment.security.level
property, the upgrade to HIGH is not done. The property can be manually upgraded using the Java Control Panel.
Area: Deploy / Plug-In
It takes a long time to load app after accepting a multi-click dialog caused by 'the certificate revocation site cannot be accessed'
For sandbox app, a second certificate revocation check is always performed after accepting security dialog, ignoring that fact that user already accepted the certificate. If there are network connection problems, such as when a proxy is turned off, the revocation check can take a long time, before java.net.SocketTimeoutException
is thrown.
Start by selecting the correct category from our list of.Need more help finding the right driver? Kb-a100 bluetooth driver win7. You can and we will find it for you. We employ a team from around the world. Choose the best match for your PC and operating system.If you don’t know the model name or number, you can start to narrow your search down by choosing which category of Packard Bell device you have (such as Printer, Scanner, Video, Network, etc.).
Workaround:
User can disable certificate revocation checks by using Java Control Panel:
- Select tab Advanced
- Find the option named Performs certificate revocation checks on
- Set it to Do not check (not recommended)
Area: Deploy / Web Start
Javaws cannot switch to offline application run mode if the application cannot be launched online.
The command javaws <jnlp_url>
fails to launch the cached application if the system is offline, even if the application JNLP file has the <offline-allowed>
element specified. As a workaround users can either:
- Launch Javaws explicitly with the command
javaws -offline <jnlp_url>
- Launch the cached application using the Java Cache Viewer
Area: Core Libs / java.lang.reflect
Type annotations on a class, or on a member of that class, get dropped if the class is redefined using, for example, JVMTI or the classes in java.lang.instrument
.
- Bug
Area: Core Libs / java.lang.reflect
The array returned from the Class.getMethods()
method may include methods that are not members of the class. The array may include methods from superinterfaces that have a more specific match in a different superinterface.
- Bug
Area: Core Libs / java.lang.reflect
The array returned from a call to the Class.getMethods()
method may, in some scenarios, include default methods that are not members of the class. Specifically, default methods from superinterfaces that have a more specific method may be included.
- Bug
Area: Core Libs / java.net
On Windows platforms, the IPv4 stack needs to be configured in addition to the IPv6 stack, for the IPv6 stack to work. For more information on IPv6 configuration, see Networking IPv6 User Guide.
- Bug
Area: Core Services / Debugger
Currently it is not possible to programmatically invoke default interface methods using the JDI API. The interface default methods are a new feature of JDK 8 and the JDI specification has not been updated to work with this feature yet.
- Bug
Area: Client Libs / java.swing
On Mac OS X, the ComboBox
control consumes the Esc and Enter keys. When the ComboBox
in a dialog box has focus, the keyboard cannot be used to close the dialog box.
- Bug
Area: JavaFX / Swing Node
The SwingNode
class does not support High DPI displays.
- Bug
Area: JavaFX / Packager Tool
The JavaFX packager tool in some cases generates a valid .exe installer but an invalid .msi installer on Windows x64.
- Bug
Area: JavaFX / Non-mouse traversal input
Non-mouse traversal functionality does not work as expected on the non-editable ComboBox
in the following cases:
- When a
ComboBox
is in focus and has a neighbor control on the right, pressing the Right arrow key causes the originalComboBox
to lose focus, however the targetComboBox
does not gain focus. The right arrow key must be pressed a second time for the targetComboBox
to gain focus. - When any
ComboBox
is selected, pressing the up arrow key or down arrow key shows that interactive mode is on when traverse mode is expected.
- Bug
Area: JavaFX / Linux
The Scene Builder has repaint issues on Linux when the machine has been activated after being suspended.
- Bug
Area: Security Libs
If a jar file is signed, but the signer's certificate includes a KeyUsage
extension that does not allow code signing, jarsigner
was designed to print out a warning but still treat the file as signed. In fact, because the KeyUsage
check is performed inside the JarFile
parsing, jarsigner
now simply treats the file as unsigned with no warning.
Area: Security Libs / javax.crypto
/ Solaris
When using the OracleUcrypto
provider for AES/GCM/NoPadding encryption, an unexpected IllegalBlockSizeException
might be thrown on Solaris 11 and later releases.
The following workarounds are available:
- Disable the GCM implementation from the OracleUcrypto provider by adding the 'Cipher.AES/GCM/NoPadding' string to the
disabledServices
section in its provider configuration file, for example,<java-home>/lib/security/ucrypto-solaris.cfg
. - Disable the OracleUCrypto provider, and use the SunJCE GCM implementation instead using one of the following methods. Be aware that this workaround disables all services provided by OracleUcrypto.
- Statically: Edit the
<java-home>/lib/security/java.security
file. - Dynamically: Use the
java.security.Security.removeProvider('OracleUcrypto')
API.
- Statically: Edit the
- Bug
Area: Security Libs / javax.crypto
/ Solaris
Newer clients such as Mozilla's Firefox might try to negotiate TLS v1.2 connections using AEAD/GCM-based ciphers, such as TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256. JDK 8-based servers such as Tomcat 8.0.3 might run into a known issue in the OracleUcrypto provider, in which a previous GCM state could be retried and the following exception thrown:
The following workarounds are available:
- Disable the GCM implementation from the OracleUcrypto provider by adding the 'Cipher.AES/GCM/NoPadding' string to the
disabledServices
section in its provider configuration file, for example,<java-home>/lib/security/ucrypto-solaris.cfg
. - Disable the OracleUCrypto provider, and use the SunJCE GCM implementation instead using one of the following methods. Be aware that this workaround disables all services provided by OracleUcrypto.
- Statically: Edit the
<java-home>/lib/security/java.security
file. - Dynamically: Use the
java.security.Security.removeProvider('OracleUcrypto')
API.
- Statically: Edit the
- Bug
Area: Security Libs / javax.net.ssl
When using RSA client key exchange in SSL/TLS protocols, SunJSSE provider cannot work in FIPS 140 compliant mode. This issue does not impact the default mode of SunJSSE.
A straightforward workaround is to disable FIPS mode of SunJSSE provider.
An alternative workaround is to disable the use of RSA key exchange in SSL/TLS protocols. This issue only happens to RSA key exchange based SSL/TLS cipher suites. To workaround this issue, applications can use DHE/ECDHE cipher suites instead (for example, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, etc.). See JSSE Reference Guide for information about customizing SSL/TLS cipher suites.
Area: HotSpot / compiler
With power of 2 values, Math.pow
has reduced performance. Use code similar to the following example to work around the issue:
- Bug
Area: Tools
Localized man pages for the java
command do not contain information about the deprecation of certain options that control some rarely used garbage collector combinations that were deprecated. The English man pages contain the relevant information. For more information about affected options, see http://openjdk.java.net/jeps/173
.
- Bug
Area: Tools / javac
ElementType.TYPE_USE
is introduced in JDK 8 and should be considered a logical superset of ElementType.TYPE
and ElementType.ANNOTATION_TYPE
. However, the javac
command does not currently recognize ElementType.TYPE_USE
as a superset.
- Bug
Area: Tools / javac
Due to a type inference specification change in JDK 8, programs similar to the following example are not accepted by the javac
command:
- Bug
Area: Tools / javac
Mixing lambda expressions and inner classes, similar to the following example, can cause the javac
tool to crash.
Note that this program compiles correctly if A
is a known identifier.
- Bug
Area: Tools / javac
An incorrect exception table is generated for code that has multiple catch statements inside a lambda. The following example shows the type of code that causes this behavior:
The generated exception table for method main()
contains the following information:
Avoid using multiple catch statements inside lambda bodies until this issue is fixed.
- Bug
Area: Tools / launcher
To overcome an incompatible change in VisualStudio 2010 with setargv.obj
, the Java launcher uses its own argument parser/processor as outlined in the release note for 7146424 in the Java SE 7 Update 4 Release Notes.
A side effect of the above fix is that the escaping of quotes and spaces must be done according to the Windows specification. The following examples show the correct way to quote a command line containing spaces in a directory:
- 'c:Program FilesJavajdk1.8.0binjava.exe' -cp 'c:Some Dir' SomeMain
- c:'Program Files'Javajdk1.8.0binjava.exe -cp 'c:Some Dir' SomeMain
- c:Progra~1Javajdk1.8.0binjava.exe -cp 'c:Some Dir' SomeMain
This example is the correct way to use the quotes. This is also how the Windows command interpreter (cmd.exe
) auto-completes user commands and quotes arguments.
This example is for short filenames for files that are not in the 8-dot-3 format obtained from dir /X. Sales and distribution management pdf ebook.
- Bug
Area: Java DB
An additional permission may be needed to bring up the Java DB network server. In particular, the startup scripts in <db/bin>
may fail to boot the network server.
While attempting to boot, the network server may fail and raise the following error:
To fix this problem, you must bring up the network server with a security policy that includes the missing permission. Instead of booting the network server as:
boot the network server as follows:
where ${yourPolicyFile}
is a file containing a customized version of the policy file described in the Java DB Admin Guide section titled Basic Network Server security policy. You must customize that generic policy file to fit your application. In addition, you must add the following permission to the permissions block granted to the ${derby.install.url}derbynet.jar
codebase:
where ${port}
should be replaced by the port number where the network server listens for incoming connection requests. By default, that is port 1527.
For more information on Java DB security policies, see the Java DB Admin Guide sections titled Network Server security and Running the Network Server under the security manager.
If you are using replication, a similar permission must be granted to the security policy for the slave server. Add the following permission to the ${derby.install.url}derby.jar
codebase:
where ${slavePort}
should be replaced by the port number where the slave server listens for incoming connection requests (typically 4851). For more information on the security policy for the slave server, see the Java DB Server and Administration Guide section titled Replication and security.
Resolved Known Issues
The following list includes Known Issues from previous releases that have been resolved in JDK 8.
Area: Install
[macosx] Scheduled AU - cannot auto update on Mac 10.9
On Mac OS 10.9, when a scheduled Java (auto) update is initiated, the installer may become unresponsive.
Area: HotSpot / gc
Crashes due to failure to allocate large pages.
On Linux, failures when allocating large pages can lead to crashes. When running JDK 7u51 or later versions, the issue can be recognized in two ways:
Before the crash happens, one or more lines similar to the following example will have been printed to the log:
If a file named
hs_err
is generated, it will contain a line similar to the following example:
The problem can be avoided by running with large page support turned off, for example, by passing the '-XX:-UseLargePages'
option to the java binary.