Oracle Releases Java Se 7 Update 4 Javafx For Mac

admin

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

Synopsis

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

Synopsis

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

Synopsis

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.

  1. 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.

  1. Bug

Area: Deploy

Synopsis

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.

  1. Bug

Area: Deploy / Plug-In

Synopsis

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

Synopsis

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.

  1. 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

Synopsis

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

Synopsis

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.

  1. 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.

  1. Bug

Area: Core Libs / java.lang.reflect

Synopsis

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.

  1. 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.

  1. Bug

Area: Core Services / Debugger

Synopsis

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.

  1. 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.

  1. Bug

Area: JavaFX / Swing Node

Synopsis

The SwingNode class does not support High DPI displays.

  1. 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.

  1. Bug

Area: JavaFX / Non-mouse traversal input

Synopsis

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 original ComboBox to lose focus, however the target ComboBox does not gain focus. The right arrow key must be pressed a second time for the target ComboBox 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.
  1. Bug

Area: JavaFX / Linux

The Scene Builder has repaint issues on Linux when the machine has been activated after being suspended.

  1. Bug

Area: Security Libs

Synopsis

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.
  1. Bug

Area: Security Libs / javax.crypto / Solaris

Synopsis

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.
  1. Bug

Area: Security Libs / javax.net.ssl

Synopsis

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:

  1. 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.

  1. Bug

Area: Tools / javac

Synopsis

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.

  1. 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:

  1. 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.

  1. 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.

  1. Bug

Area: Tools / launcher

Synopsis

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
  • 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.

  • 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 for short filenames for files that are not in the 8-dot-3 format obtained from dir /X. Sales and distribution management pdf ebook.

  1. 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

Synopsis

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.