Monday Sep 29, 2014

Java ME Embedded 8.1 Developer Preview on FRDM-K64F is Live!

The Oracle Java ME Embedded 8.1 Developer Preview on FRDM-K64F offers a feature-rich and optimized Java ME 8 runtime in 190 KB RAM, enabling highly functional Java Embedded applications on single-chip micro-controller system.

Find more information about the available features and platform limitations in the Release Notes. Study the Getting Started Guide to try the Developer Preview release on FRDM-K64F in action.

You can also preview an early access version of the Java ME Optimization Techniques Guide, the newly added chapter of the Java ME Embedded Developer's Guide.

Java ME documentation will highly appreciate your responses to the Java ME Documentation Survey. This survey is set specifically to collect readers' feedback and better understand preferences of the developer community.

Monday Sep 15, 2014

First Cup and Java EE 7 Tutorial Updated!

On September 9th, Update 1, a significant update to the Java EE 7 SDK, was released. You can get the new SDK from here. Update 1 includes updates to the Java EE 7 Tutorial as well as to the First Cup tutorial. Version numbers for both tutorials are now 7.0.5. The tutorial updates include many bug fixes, both in the examples and in the documentation. Although most of these fixes were small, taken together they should improve your experience using the tutorials.

These are the most significant example fixes:

  • Fixed locale-specific problems in dukeetf and dukeetf2 that were caused by the character used as a separator.
  • Fixed problems in Duke's Forest and Duke's Tutoring examples that were caused by a GlassFish package renaming exercise. See this blog entry on the Aquarium for more information.
  • Rewrote the Batch Processing phonebilling example to obtain properties in partitioned steps in a way that complies with the JSR 352 specification and works with the jbatch implementation in GlassFish as well as the JBeret implementation in Wildfly. We inadvertently wrote the example in a way that caused an NPE in JBeret/Wildfly. This fix was completed the day that we shipped, so you'll need to use Update Tool to pull down the package (javaee-tutorial 7.0.5, 1-2) that includes this fix.

Note: The SDK is now available only in ZIP format, which should work on all platforms. There is no installer. The Update Tool is not included with the distribution. You must install it from the command line (issue the updatetool command) or by using NetBeans IDE (from the Services tab, open Servers, right-click GlassFish Server, select View Domain Update Center, then follow the prompts to download and install it).

We verified that all of the examples work properly with the latest versions of JDK 7, JDK 8, and NetBeans IDE 8.

Follow the instructions in Section 2.1, Required Software to obtain and install the latest update mentioned above.

Tuesday Aug 19, 2014

JDK 8u20 Documentation Updates

JDK 8u20 has been released and is available from the Java Downloads page. See the JDK 8u20 Update Release Notes for details.

Highlights for this release:

  • The Medium security level has been removed. Now only High and Very High levels are available. Applets that do not conform with the latest security practices can still be authorized to run by adding the sites that host them to the Exception Site List. See Security for more information.

  • The javafxpackager tool has been renamed to javapackager, and supports both Java and JavaFX applications. The -B option has been added to the javapackager deploy command to enable arguments to be passed to the bundlers that are used to create self-contained applications. See javapackager for Windows or Linux and OS X for information.

    The <fx:bundleArgument> helper parameter argument has been added to enable arguments to be passed to the bundlers when using ant tasks. See JavaFX Ant Task Reference for more information.

  • A new attribute is available for JAR file manifests. The Entry-Point attribute is used to identify the classes that are allowed to be used as entry points to your application. See Entry-Point Attribute for more information.

  • A new Microsoft Windows Installer (MSI) Enterprise JRE Installer, which enables users to install the JRE across the enterprise, is available for Java SE Advanced or Java SE Suite licensees. See Downloading the Installer in JRE Installation For Microsoft Windows for more information.

  • The following new configuration parameters are added to the installation process to support commercial features, for use by Java SE Advanced or Java SE Suite licensees only:


    See Installing With a Configuration File for more information about these and other installer parameters.

Documentation highlights:

  • New Troubleshooting Guide combines and replaces the Desktop Technologies Troubleshooting Guide and the HotSpot Virtual Machine Troubleshooting Guide to provide a single location for diagnosing and solving problems that might occur with Java software.

  • New Deployment Guide combines and replaces the JavaFX Deployment Guide and the Java Rich Internet Applications Guide to provide a single location for information about the Java packaging tools, creating self-contained applications, and deploying Java and JavaFX applications.

  • New Garbage Collection Tuning Guide describes the garbage collectors included with the Java HotSpot VM and helps you choose which one to use.

  • The Java Tutorials have a new look.

Java Components Landing Page and Documentation Updates

The new Java Components page provides access to the documentation for tools that are available for monitoring, managing, and testing Java applications. Documentation for the new versions of the following tools is available:

  • JavaTest Harness 4.6. The JavaTest harness is a general purpose, fully-featured, flexible, and configurable test harness that is suited for most types of unit testing. See the JavaTest tab for documentation.

  • SigTest 3.1. SigTest is a collection of tools that can be used to compare APIs and to measure the test coverage of an API. See the SigTest tab for documentation.

The following tools are part of Oracle Java SE Advanced and Oracle Java SE Suite.

  • Java Mission Control and Java Flight Control 5.4 are supported in JDK 8u20. Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. See the JMC tab for documentation.

  • Advanced Management Console 1.0 is a new tool that is now available. AMC can be used to view information about the Java applets and Java Web Start applications running in your enterprise, and create deployment rules and rule sets to manage the execution of these applications. See the AMC tab for documentation.

  • Usage Tracker tracks how Java Runtime Environments (JREs) are being used in your systems. See the Usage Tracker tab for documentation.

Wednesday Apr 30, 2014

Java ME 8 is live!

The two-year effort of many teams has resulted in the long-awaited release. Oracle Java ME Embedded 8 is available on OTN.

The main deliverables of Java ME 8 include:

The totally reworked Java ME documentation portal provides developers with the latest versions of the Release Notes and Getting Started Guides.

The Java ME Developer's Guide is intended for developers who want to build Oracle Java ME Embedded software for embedded devices. It also helps application developers port earlier applications to the latest version of the Oracle Java ME Embedded runtime.

See the Java ME SDK Developer's Guide to learn how to develop applications with Oracle Java ME SDK 8 on Windows by using emulators and NetBeans IDE.

Java ME Embedded and SDK documentation and the related API specifications can be found at

Tuesday Apr 15, 2014

Java EE 7 Tutorial Updated!

The latest update to the Java EE 7 Tutorial is now public. Update 7.0.4 includes many bug fixes, both in the examples and in the documentation. Although most of these fixes were small, taken together they significantly improve the quality of the tutorial.

Kin-man Chung conducted a thorough review and provided several corrections and good suggestions that we incorporated to greatly improve Chapter 9, Expression Language.

Additional instructions for using the user and administrative interfaces in Duke's Tutoring case study were added.

We went through all of the examples and cleaned up the code to minimize warnings that you could see when you ran the examples or used the IDE's code editor to examine the files that made up the examples.

We verified that all of the examples work properly with the latest versions of JDK 7, JDK 8, and NetBeans IDE 8.0.

We incorporated the copy edits that came back from our publisher, so what you see online will match what you see in the two-volume printed set that will be available from your favorite booksellers next month.

Follow the instructions in Section 2.1, Required Software to obtain and install the update.

Tuesday Mar 25, 2014

Learn More About Compact Profiles

Compact Profiles contain predefined subsets of the Java SE platform and enable applications that do not require the entire platform to be deployed and run on small devices. Developers can choose the appropriate profile based on the resources of the target hardware. The following profiles are available in Java SE 8:

  • compact1: Smallest set of API packages without omitting classes. Logging and SSL are included. See Profile compact1 for a list of the packages, classes, and interfaces that are included.

  • compact2: Includes everything in compact1 plus XML, JDBC and RMI. See Profile compact2 for a list of the packages, classes, and interfaces that are included.

  • compact3: Includes everything in compact2 plus management, naming, more security, and the compiler API. See Profile compact3 for a list of the packages, classes, and interfaces that are included.

For more information about compact profiles, see the following resources:

See What's New in JDK 8 for information about other new features in JDK 8.

Learn More About Java Type Annotations

Java SE 8 brings a variety of improvements to the "metadata" features of the Java language and libraries. Annotations are more flexible and useful than ever. Annotations can now be applied anywhere a type is used, which enables stronger type checking of your code, and the same annotation type can be applied more than once to the same declaration or type use. It is also now possible to reflect over the names of method parameters.

For more information about annotations and reflection, see the following resources:

See What's New in JDK 8 for information about other new features in JDK 8.

Learn More About the Date-Time API

JDK 8 includes a new Date-Time API based on JSR 310. This API provides a comprehensive date-time model that enables you to represent dates and times and manipulate date and time values. It supports the International Organization for Standardization (ISO) calendar system as well as other commonly used global calendars. Classes in the java.time package replace the Date, Calendar, TimeZone, and DateFormat classes in the java.util package.

For information about the Date-Time API, see the following resources:

  • The Date-Time Trail of the Java Tutorial covers the classes based on the standard ISO calendar system, and includes information about migrating from the java.util date classes to the new java.time API.

  • The API documentation for the Date-Time API describes the classes and methods that are available.

  • The screencast A New Date and Time API - JSR 310 by Stephen Colebourne provides an overview of the API, explaining the core concepts and classes, and enables you to dive straight in when it is time to code.

  • Java 8 Launch has screencasts that describe the feature.

See What's New in JDK 8 for information about other new features in JDK 8.

Learn More About Lambda Expressions

Java SE 8 introduced Lambda Expressions, a powerful new behavior abstraction feature that enables code to be passed around as data. Lambda expressions make your code easier to read, easier to maintain, and less prone to error. Lambda expressions make it possible to express a problem with a higher level of abstraction than was previously possible. Use Lambda Expressions to eliminate large chunks of "boilerplate" code (such as when using inner classes to express behavior), and accomplish more work in less lines of code.

For more information about Lambda Expressions, see the following resources:

See What's New in JDK 8 for information about other new features in JDK 8.

Learn More About Nashorn – New JavaScript Engine for Java SE 8

JDK 8 introduces Nashorn: a new JavaScript engine written in Java, which implements the Java Scripting API based on JSR-223: Scripting for the Java Platform. Nashorn takes full advantage of the latest technologies for native JVMs described in JSR-292: Supporting Dynamically Typed Languages on the JavaTM Platform.

For more information about Nashorn and other scripting features implemented on the Java Platform, see Scripting for the Java Platform.

Jim Laskey has presented a screencast titled JavaScript on the JVM during the Java 8 Launch Webcast where Nashorn was discussed in more detail.

Learn More About Monitoring and Management Improvements in JDK 8

For users of commercial packages Java SE Advanced and Java SE Suite, JDK 8 includes a new version of Java Mission Control (JMC) that introduces a number of improvements to monitoring and profiling the HotSpot VM. JMC is a powerful set of tools for managing a running application and JVM. You can use it to perform extensive analysis based on detailed monitoring and profiling data.

JMC 5.3.0 reintroduces the Diagnostic Commands tab. This tab can be used to remotely execute commands available via the jcmd utility.

Another big improvement is the addition of content types for attributes. This means that each attribute contains metadata about its physical quantity and units, which helps rendering the attribute values on graphs properly with little or no configuration.

In addition, a number of known issues have been fixed, increasing overall stability and performance

To learn more about JMC 5.3.0, see the JMC User's Guide.

Marcus Hirt has presented a screencast titled Introducing Java Mission Control 5.3.0 during the Java 8 Launch Webcast where new JMC features were discussed in more detail.

Learn More About Performance Improvements in JDK 8

Each release of the JDK includes enhancements that improves the performance of the Java platform. The following describes some of these enhancements in JDK 8:

  • The concurrent libraries have undergone a major revision to improve scalability. See Concurrency Utilities Enhancements in Java SE 8.
  • Tiered Compilation, which was introduced in JDK 7, has been enabled by default and brings server VM startup speeds close to or on par with the client VM. For details on how to control the compiler, see the documentation for the java command.
  • Permament generation, where the VM stored internal native data structures, such as class information, has been replaced with metaspace. Metaspace eliminates java.lang.OutOfMemoryError: PermGen space errors. The java command introduces the option -XX:MetaspaceSize, which sets the maximum amount of native memory that can be allocated for class metadata. By default, the size is not limited. In addition, the experimental option -Xshare has been introduced, which reduces footprint and startup time by sharing loaded JDK classes between all Java processes on the same host.
  • The Nashorn JavaScript engine dramatically improves upon the performance of the JDK 7 JavaScript engine.
  • The new language feature Lambda expressions performs better than inner classes.
  • The performance of JavaFX has been improved in JDK 8.

See the Java 8 Launch Webcast and What's New in JDK 8 for additional information of other new features in JDK 8.

Download JDK 8 today and try it out!

Learn More About Security Enhancements in Java SE 8

Oracle constantly works on improving the security of the Java platform. The following security enhancements are new for JDK 8; see JDK 8 Security Enhancements for more details:

  • Client-side TLS 1.2 (an industry standard) enabled by default; improves security of data in transit; see the Protocols section of the SunJSSE Provider and Customizing JSSE
  • Enhanced support for certification revocation checking; it enables the Java community to better police their own certificates; see Check Revocation Status of Certificates with PKIXRevocationChecker Class
  • New tool, jdeps, Java class dependency analyzer, identifies external dependencies that may negatively impacting your applications' ability to upgrade to the latest security patches
  • Type Annotations help ensure that your data is consistent with your requirements
  • SSL/TLS Server Name Indication (SNI) Extension is a TLS extension to support virtual hosting environments; previously, HTTPS servers could not be hosted in a virtual hosting infrastructure where multiple domains share the same IP address; see Server Name Indication (SNI) Extension
  • High entropy random number generation; see SecureRandom section of the JCA Reference Guide and the SecureRandom API Specification
  • The cryptographic algorithms in JDK 8 have been enhanced with the SHA-224 variant of the SHA-2 family of message-digest implementations
  • Support for NSA Suite B cryptography has been enhanced
  • The PKCS 11 provider support for Windows has been expanded to include 64-bit
  • Overhauled JKS-JCEKS-PKCS12 Keystore

Many recent improvements focus on limiting attackers from using malicious applets and Rich Internet Applications (RIAs), which have been added in JDK 7 update releases and critical patch updates (CPUs) and in JDK 8. These improvements are described in Java Rich Internet Applications Enhancements in JDK 7, which include the following:

  • Ability to set the security level of the Java client in the Java Control panel
  • Ability to disable any Java application from running in the browser
  • JREs have an expiration date; JREs will behave differently after their expiration date, which encourages upgrades; see JDK 7u10 Release Notes
  • Expanded blacklisting support, which includes a certificate and jar blacklist repository maintained by Oracle; see JDK 7u21 Release Notes
  • Recommendation that all applications be privileged (previously called "signed" applications); otherwise, applications are restricted to the security sandbox
  • By default, all certificates are checked using both OCSP and CRLs
  • New JAR file manifest attributes to defend RIAs against unauthorized code repurposing
  • Deployment Rule Set feature enables an enterprise to establish a whitelist of known applications; applications on the whitelist can be run without most security prompts
  • Ability for enterprises who manage their update process to disable checking of JREs if they are expired or below the security baseline
  • Exception Site List feature provides a way for users to run Java applets and Java Web Start applications that do not meet the latest security requirements

Milton Smith has presented the screencast Java 8 Security Highlights during the Java 8 Launch Webcast, which discusses these enhancements.

See What's New in JDK 8 for additional information of other new features in JDK 8.

Download JDK 8 today and try it out!

Learn More About New Features in Java SE 8

Java SE 8 introduces significant enhancements to the Java language and class libraries. These enhancements enable you to make code more concise without losing readability; write more reliable code; better utilize multi-core and multi-processor systems (code is no longer inherently serial or parallel); and detect more errors at compile time, rather than at run time.

See What's New in JDK 8 and JDK 8 Adoption Guide for more detailed information on these new features and how to adopt them.

Learn more about these features with the following links from Java SE 8 Technical Documentation:

  • Java Language Enhancements
    • Lambda Expressions enable you to treat functionality as a method argument, or code as data. They are similar to closures and provide more concise anonymous function types and a more functional style of programming.
    • Default Methods (or Extension Methods) provide a mechanism to add new methods to existing interfaces.
    • Type Annotations provide the ability to apply an annotation anywhere a type is used, not just on a declaration.
    • Improved Type Inference enables the Java compiler to takes advantage of target typing to infer the type parameters of a generic method invocation. The target type of an expression is the data type that the Java compiler expects depending on where the expression appears.
    • Obtaining Names of Method Parameters shows you how to retrieve parameter names of methods and constructors (not just types and return types) by reflection.
  • Core Libraries Enhancements
  • Java Virtual Machine Enhancements
    • Nashorn is a lightweight, high-performance JavaScript engine, which is integrated into the JRE.
    • java command lists deprecated and removed options as a result of the retirement of rarely used garbage collection combinations and the removal of permanent generation

Simon Ritter has presented the screencast New Features in Java SE 8: A Developer's Guide during the Java 8 Launch Webcast, which discusses these features.

Download JDK 8 today and try it out!


Blog about Java technology documentation and news about Java releases.


« September 2015