Tuesday Sep 10, 2013

Oracle JDK 7u40 released - security features, hardfloat ARM, Java Mission Control and more

Oracle JDK 7 Update 40 is now available. This release introduces the following new features:

  • Java Mission Control. This is an advanced monitoring/diagnostics tool inherited from JRockit, now fully supported on the JDK 7. Also adds new features such as a DTrace plugin.
  • Java Flight Recorder, again a feature ported over from JRockit. This is a really cool feature that enables you to record events and metrics during runtime, and then extract them at will. You can even dump all or part of the data on a user-defined alert. Eg, "Why did that transaction take more than 1 second? Give me the last 10 seconds of data in your buffer so that I can figure out what went wrong."
  • Support for the Apple Retina display with Swing/AWT and JavaFX.
  • A new JDK binary for hardfloat Linux/ARM, for ARM-based micro servers and development boards. Yes, this means that we now have official JDK 7 support for the default Raspbian Linux distribution for the Raspberry Pi.
  • A new Deployment Rule Set feature to enable fine granular controls for execution of Applet and WebStart applications.
  • Security feature enhancements for applets, JAXP and x.509 certificates.

The new update of the JRE and the JDK are available from OTN. For more information, see the release notes.

For Mission Control, a great source of information is Marcus Hirt's blog (thanks, Marcus!).

Monday Jun 10, 2013

TZUpdater for JDK 7 available (again)

The Timezone Updater Tool (aka TZUpdater) is available for public download from OTN [1] again.

On March 8, 2013, as part of maintenance tied to the end of public updates for Oracle JDK 6, the "Timezone Updater Tool" [2] was removed from OTN, with just a short note that this tool was now only available for Oracle Java SE Support customers. An unintentional side effect of this change was that it became impossible to keep Oracle JDK 7 up to date without a support contract, which is not in line with our policy: The most recent version of the Oracle JDK will always be available royalty free (including any tools required to keep it up to date).

The function of the TZUpdater tool is to enable an Oracle JDK or JRE user to patch their installation with the most recent timezone data. Our goal is to make sure that the most recent version of the JDK and JRE always contain the most recent timezone data, so that there is rarely need for a separate TZUpdater tool - you just upgrade to the most recent JDK/JRE. However, this is not always possible given the timing of the timezone updates and has specifically not been true over the past several months. We are reviewing our development process to determine what guarantees we can put in place for the gap between a timezone update and it being available in a public JDK/JRE release, and will also continue to make TZUpdater available for the most recent JDK version whenever it is needed to keep the most current JDK/JRE up to date.

For users who require updates and supportability tools for older versions of the Oracle JDK, we continue to recommended Java SE Support [3] which provides long term support.

To all of those in the Java community who were affected by this, we apologize for any confusion or inconvenience we caused, and we are grateful to those of you who reached out to us directly to bring this to our attention. As always, several Java User Group leaders and Java Champions were diligent and helpful - Stephen Colebourne, in particular, provided detailed, helpful technical analysis from a community perspective.

[1] - http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html
[2] - http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
[3] - http://www.oracle.com/us/technologies/java/standard-edition/support/overview/index.html

Tuesday Feb 19, 2013

Oracle JDK 7u15 and 6u41 released

Oracle has released a Critical Patch Update which including updates to JDK 6 and 7. More information about this CPU is available on https://blogs.oracle.com/security and in the releases notes (7u15, 6u41).

The JDK releases are available from the following download sites:

Note that this JDK 6 release is the final public update of JDK 6. For more information on the End of Public Updates milestone, see my previous blog on the topic.

Friday Dec 14, 2012

Oracle JDK 7u10 released with new security features

A few days ago, we released JRE and JDK 7 update 10. This release adds support for the following new platforms:

  • Windows 8 on x86-64. Note that Modern UI (aka Metro) mode is not supported.
  • Internet Explorer 10 on Windows 8.
  • Mac OS X 10.8 (Mountain Lion)

This release also introduces new features that provide enhanced security for Java applet and webstart applications, specifically:

  • The Java runtime tracks if it is updated to the latest security baseline. If you try to execute an unsigned applet with an outdated version of Java, a warning dialog will prompt you to update before running the applet.
  • The Java runtime includes a hardcoded best before date. It is assumed that a new version will be released before this date. If the client has not been able to check for an update prior to this date, the Java runtime will assume that it is insecure and start warning the user prior to executing any applets.
  • The Java control panel now includes an option to set the desired security level on a low-medium-high-very high scale, as well as an option to disable Java applets and webstart entirely. This level controls things such as if the Java runtime is allowed to execute unsigned code, and if so what type of warning will be displayed to the user.

More details on the security settings can be found in the documentation. See below for a sample screenshot.

Security Dialog Image

The new update of the JRE and the JDK are available via OTN. To learn more about the release please visit the release notes.

Thursday Aug 30, 2012

Oracle releases Java SE 7 Update 7, and Java SE 6 Update 35

This morning, Oracle released updates to JDK 6 and 7. For more information on these releases see:

Oracle recommends that users apply these updates as soon as possible. Users of Oracle JRE 6 and 7 for Windows (32-bit) and the recently released JRE 7 for Mac OSX (64-bit) will be updated automatically. For more information see, this blog entry.

Tuesday Aug 14, 2012

Oracle releases JDK for Linux ARM, JRE for Mac OS X

Earlier today, we announced (among other things) the availability of JDK 7 Update 6. This release contains an update to the Mac OS X port, as well as the addition of a new JDK port to Linux ARM.

The Java 7 port to Mac OS X has been long in the making. We have been working on it in OpenJDK with Apple since November 2010, and it has been quite a lot of work both in the JDK/JRE and in OS X to get to this point. A lot of work has been done behind the scenes on seemingly trivial but time-consuming tasks such as extending the build & test infrastructure and figuring out how to decouple the Java and OS release cycles. Anyway; with the 7u6 release we are finally completing the feature set by adding a desktop JRE and making it available for download on java.oracle.com and (in a week or so) on java.com.

With JDK 7u6 we are also adding a general-purpose port of the JDK (but not a desktop JRE) to Linux ARM, and making it available under the same licensing terms as Oracle Java for other platforms. This JDK release is aimed at the emerging ARM server market, and for the community working on development boards such as the BeagleBoard, PandaBoard and the Raspberry Pi. This port provides 32-bit binary for ARMv6 and v7, with full support for Swing/AWT, both client (C1) and server (C2) compilers and runs on most Linux distributions. One caveat is that the current binary is softfloat ABI only, so it won't work with (for example) the Raspbian distribution which uses the hardfloat ABI. We are planning to add hardfloat support in an upcoming JDK release, as well as support for JavaFX on ARM.

I anticipate quite a few questions about the ARM port, so here are a few FAQs to start with:

  • What is the relation between Java SE Embedded and the JDK for ARM? Java SE Embedded is a Java SE compliant runtime optimized for small footprint devices, available for multiple architectures including ARM v5/6/7, x86 and PPC. It is a product that Oracle licenses commercially for embedded use. The JDK is a generic Java runtime and development kit, intended for developers and server-side applications and is available on architectures such as x86, SPARC and - now - ARM. It is free for general purpose use, with commercial support available under the Java SE Support program.
  • Is the ARM JDK free (gratis) or does it require a commercial license? Like all general-purpose JDK and JRE binaries, the ARM JDK is free for development and production use on general-purpose hardware, and can be redistributed for free with applications targeting a general-purpose computer. See the end-user license for the exact license grants & restrictions. To take a couple of examples, an ARM server deployed in your datacenter running Tomcat or Glassfish is general-purpose, as is a Raspberry Pi board when you use it like a PC. An industrial controller or a kiosk appliance is not general purpose, and both would require a commercial license.
  • Is the Oracle JDK port to ARM available in OpenJDK? No, and we are not planning on open sourcing it at this point.
  • I own a Raspberry Pi/BeagleBoard/PandaBoard. How do I get Java running on it? Make sure that you use a Linux distribution that uses the softfloat ABI, or a hardfloat ABI that has multi-arch support but not a distribution that only supports hardfloat (such as Raspbian), and then download and install the Oracle JDK on it.
  • Why is Oracle investing in an ARM port and then giving it away for free? We have a super-secret agenda. The idea is to enable Java developers so that Java can continue to thrive, and maybe sell some middleware on ARM servers down the line.
  • Is graphics fully supported? What about sound? Yes, the JDK binary is headful which means that Swing/AWT and sounds are both supported. Note that sound is not available in our headless Java SE Embedded binaries, which is the most likely reason for a small set of reports on sound issues found across the web. Swing/AWT requires X11R6 to work, framebuffer is not supported. JavaFX is not yet available on Linux ARM, but is in our roadmap.
  • Does the Linux ARM JDK have full feature parity with the JDK on other platforms? Most of the JDK features are supported, but there are some that are not available. Some examples of missing features include the G1 GC, tiered compilation and plugin/webstart. See the release notes for more detail. Some of these features will be added in future releases.
  • What is this softfloat vs hardfloat thing? When will the Oracle JDK support hardfloat? Some ARM chips have hardware support for floating point (hardfloat), and some do floating point through software (softfloat). An operating system running on an ARM chip that supports hardware floating point can use the floating point registers for parameter passing during function calls, which improves performance. This parameter passing is a contract between the OS, libraries and applications (such as the JVM) called the ABI or Application Binary Interface. In the simple case, an OS exposing the softfloat ABI requires all libraries and applications to be compiled against softfloat, and an OS exposing hardfloat requires libraries and applications to be compiled against hardfloat. There is a special case where a hardfloat OS can provide a compatibility layer and therefore enable softfloat applications to work. Until recently, almost all Linux distributions were softfloat. Lately, Linux distributions have aggressively moved to hardfloat. Some - I believe Ubuntu 12.04 is a good example - also provides softfloat compatibility. Raspbian on the other hand is hardfloat only. The initial release of the Oracle JDK for ARM uses the softfloat ABI and so works on softfloat distributions, or hardfloat with softfloat compatibility, but not on hardfloat. This is just a matter of timing - we will provide a hardfloat JDK at some point in the future. It will likely be done iteratively, so we may for instance deliver ARMv7 first and ARMv6 later, and the initial release may be headless so no Swing/AWT. We will produce public early access builds as soon as we are able and make them available on java.net. We don't have any dates to share yet, but will hopefully be able to provide a roadmap at JavaOne 2012.
  • Now that you have a public ARM port, will you support other OSes like iOS? Linux is a simple port, iOS is not. We have done some prototyping, but at this time it's not something we have on our roadmap. One of many open questions is what UI to use. JavaFX is an option, or a hybrid Java+Web combination like the one used for ADF mobile. It's really a matter of whether a solution would get sufficiently broad adoption to be worth the investment. If you want something NOW, head over to OpenJDK and start hacking! :-)
  • If I'm not an Oracle customer, how do I report an issue on the ARM JDK? Use the Java developer forums on OTN for general questions, and bugs.sun.com for bug reports.
  • Is Jazelle hardware byte-code execution supported? No. Jazelle is not needed when a good JIT is present, and you can afford the memory and power budget for it.

Wednesday Aug 08, 2012

Java 6 End of Public Updates extended to February 2013

Earlier this year I announced that the EOL for Oracle JDK 6 had been extended from July 2012 to November 2012. JDK 6 was the default JDK for over 5 years, and so it seems fair that it have a longer publicly available support time-frame than past major releases.

After further consultation and consideration, the Oracle JDK 6 End of Public Updates will be extended through February, 2013. This means that the last publicly available release of Oracle JDK 6 is to be released in February, 2013. After the End of Public Updates for JDK 6, if you have a valid support contract for an Oracle product that requires JDK 6, or an Oracle Java SE Support contract, there will still be additional support versions of JDK 6 available from My Oracle Support. Previously available versions of JDK 6 will remain available to the public through the Java Archive for debugging and testing purposes but Oracle no longer recommends using those in production.

It's important to highlight that, as we establish a steady two year cadence for major releases, End of Public Update events for major versions will become more frequent. As a reminder, moving forward, Oracle will stop providing public updates of a major JDK version once all of the following criteria have been met:

  • Three years after the GA of a major release
  • One year after the GA of a subsequent major release
  • Six months after a subsequent major release has been established as the default JRE for end-user desktops on java.com

For more information see the FAQ on OTN.

Wednesday May 02, 2012

Moving to Java 7 as default

Update: The issue reported in JRE 7 related to JAR file association on certain Windows configurations has been fixed and updated binaries posted to java.com.

Back in February, I wrote a post on this blog stating that the End Of Life (EOL) of public support and public releases for JDK 6 was extended to November 2012, to allow for some more time for the transition to JDK 7. As part of the updated EOL policy, EOL for public support and fixes for Java SE will typically occur no earlier than six months after a subsequent major release has been established as the default JRE.

With the release of Java SE 7 Update 4, the Java SE 7 runtime is now available on java.com as the default JRE. We can now slowly begin the process of automatically upgrading Microsoft Windows Java users to the latest version of Java SE 7 through the auto update function. If you don't desire to be automatically upgraded to Java SE 7 just yet, you can learn more about your options in the FAQ.

In terms of major new features, beside Mac OS X support, Java SE 7u4 includes the eagerly anticipated next-generation Garbage First (G1) garbage collection algorithm, as well as numerous performance enhancements to the JVM. It's very mature and stable, has been tested with large parts of our middleware and applications stacks and - as a result - is fully supported and recommended for use with Oracle Fusion Middleware.

This is another Java SE 7 update release that has been developed from beginning to end within the JDK 7 Updates Project in the OpenJDK community. As the vast majority of Oracle’s maintenance contributions in the OpenJDK community is for Java SE 7, users of the previous release, OpenJDK 6, should consider upgrading to OpenJDK 7, or - of course - to Oracle JDK 7, depending on their requirements. In line with no longer posting updates of Java SE 6 after November 2012 to Oracle’s public download sites, we don’t have plans to contribute further changes to the OpenJDK 6 Project after November 2012.

Thursday Apr 26, 2012

Oracle JDK and JavaFX SDK now GA on Mac OS X

Oracle JDK 7 and the JavaFX 2.1 SDK are now available for Mac OS X. This release is a major milestone in our effort to bring Oracle Java to Mac. From this point on, every release of Oracle JDK 7 and JavaFX 2.1 (and later) will be available on Mac at the same time as for Linux, Windows and Solaris.

Where do I download the JDK and JavaFX for OS X?
From java.oracle.com. The JDK download also contains the Java FX SDK.

Exactly what does this release contain?
A fully compatible implementation of Java SE 7, as well as most JDK development tools and the full JavaFX 2.1 SDK. Some of the serviceability and debugging tools and deployment technologies such as the Java Plugin and Web Start are not yet available, and will be added in subsequent releases. See the JDK release notes and the JavaFX release notes for details.

Does Oracle support NetBeans for use with JDK 7 on Mac?
Yes! NetBeans 7.1.2 was released simultaneously with JDK 7 Update 4, with full support for Oracle JDK on Mac. See the announcement here, and download it here.

Are there any known issues with this release?
Mac OS X is major new platform for us; the first new platform added in a very long time. It should be considered a "1.0" release and there are a number of known issues. Consult the release notes (JDK, JavaFX) for details.

What do I do if I believe I have found a new issue?
Consult the release notes first to ensure that it is not a known issue. You can ask for help to verify and troubleshoot on the appropriate mailing list or web forum, and then file a report in our bug system.

Is the source code to the OS X port available?
Yes! All code for the JDK can be found in the OpenJDK community in the JDK 7 Updates project. JavaFX is partially open sourced in the OpenJFX project; Oracle is working towards open sourcing the remaining parts.

What Apple hardware and what versions of OS X are supported?
Oracle's JDK and JavaFX release supports OS X Lion on any 64-bit capable Intel-based Mac. Specifically, our implementation is 64-bit only so it requires a 64-bit operating system.

Can I use the Oracle JDK on older OS X versions?
Probably not. The underlying issue here is that the Oracle JDK requires certain APIs that Apple introduced in Lion. The functionality introduced in these new APIs did to some extent exist in older OS X versions but were not official APIs.

What if I want a 32-bit JVM, or support for older PPC-based Macs?
There are community efforts based on OpenJDK to build JDK 7 for other configurations, easily found using your favorite search engine. We applaud these efforts! :-)

Can I get commercial support for the Oracle JDK and JavaFX on Mac OS X?
These are considered standard Oracle releases and are therefore covered under the Java SE Support program. Note that support on Mac is for development only; e.g. we don't expect your Mac to be running a business critical server-side application...

What can you say about the roadmap?
Future release of the Oracle JDK and JavaFX on Mac will follow the normal JDK release train with 4-6 releases every year. The next major milestone is JDK 7 Update 6 where we plan to add support for Plugin and Web Start. Early access builds are available here. JDK 8 will of course also support Mac OS X.

Wednesday Feb 15, 2012

Updated Java 6 EOL date

The Java SE Support Roadmap reflects an updated timeline for the EOL of public support and public releases for JDK 6. The EOL date has been extended from July 2012 to November 2012, to allow some more time for the transition to JDK 7. We have also updated the EOL policy to clarify our intent for this, and future major releases. EOL for public support and fixes for Java SE will typically occur no earlier than:

  • Three years after the GA of a major release
  • One year after the GA of a subsequent major release
  • Six months after a subsequent major release has been established as the default JRE

This policy has been consistent through the history of Java. The JRE is free software, and as is the case with most free software, users are encouraged to adopt the latest stable version. For those who need longer support lifetimes, Oracle offers Java SE Support

Thursday Aug 11, 2011

Java 7 Questions & Answers

Updated 8/18 Please use a real email when commenting; some of your questions are not of general interest and will not be posted but I can often respond privately.

This blog entry will be used to host commonly asked questions related to Java 7. I have pre-seeded it with a few that have come up since the July 28 release. If you have additional questions, feel free to post as a comment to the blog. I will not respond to them in the comments, but will instead aggregate and update the blog entry. Only questions of general interest to the community will be answered here. Fire away!

Q: Where can I download Java 7?
A: From java.oracle.com, where you can find the JDK 7 download page.

Q: When will JRockit be available for Java 7?
A: It won't. As we explained last year we are merging JRockit and HotSpot into one single JVM. JDK 7 contains the first release of this converged JVM, where one of the first steps was to start removing the PermGen concept. Future JDK 7 updates will complete the PermGen removal, as well as add more visible features from JRockit.

Added 8/18
Q: I have created an application in Java 7, but when my users try to run it they get an Unsupported major.minor version 51.0 error. What does this mean and what can I do about it?
A: If you compile an application using javac in Java 7, the resulting classfiles will have the 51.0 version number. Versions of Java prior to 7 do not recogize this number, so your users will have to upgrade to Java 7 prior to running your application. If you are not using any Java 7 APIs you can try to compile your application using javac -target 1.6 to create a 1.6-compatible classfile. If your application is deployed using webstart you can specify the minimum version required. For more information, see the docs on Java Web Start and JNLP here. This issue will go away once we trigger autoupdate to Java 7 for end-users currently having Java 6 on their desktops. The timeline for this is not yet determined, we want to give developers time to work out any issues between their code and JDK 7 first.

Added 8/17
Q: Will the converged JVM get the feature that allows JRockit to allocate more heap on Windows?
A: For reference, the feature you are asking about is described here. Adding this to HotSpot turns out to be quite complex due to how the JVM is architected. Our current plans for convergence do not include this feature. We recommend using a 64-bit JVM instead, which does not run into this Windows limitation.

Q: Where can I find the source code?
A: The source code for the Java SE 7 Reference Implementation is available from the JDK 7 Project in the OpenJDK Community.

Added 8/17
Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?
A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

Added 8/18
Q: How much more in JDK 7 is open source compared to JDK 6?
A: All new JDK 7 features are open source, as is the Java SE 7 Reference Implementation. Also, the majority of the features that are ported from JRockit are open source (or will be once they are in the JDK 7 code base).

Updated 8/17
Q: Why isn't Java 7 available on java.com yet?
A: The site java.com is used for end-user downloads. As with previous major versions of Java, JDK 7 is first made available to developers so that they can ensure that their Java programs work with the new JRE version before it gets rolled out to millions of end-users. There is a unobtrusive link from the website that takes you to developer downloads on java.oracle.com.

Q: Where can I find API documentation?
A: Javadocs are available here.

Q: What is the status of the port of Java 7 to the Mac?
A: Feature development is still going on in the OpenJDK Mac OS X Port 7 Project. You can see the detailed status here. Once that Project has made sufficient progress - say a couple of months from now or so - we plan to build and make a developer preview available from the main JDK download site. We will then work with Apple and others in the Mac OS X Port Project to finalize remaining feature work such as installers and plugin/webstart, and then go through the usual steps of one or more beta releases and/or release candidates before we get to GA. If you are anxious to get started, there are a number of third parties that provide binary builds from the OpenJDK code. Just use your favorite search engine and you'll find several.

Q: I have read about issues with Apache Lucene running on JDK 7, what is that about?
A: The Lucene project has reported that running Lucene triggers a JIT bug that causes a JVM crash. It can be worked around by disabling the broken optimizations with command line options, see the bug reports for details. The three bugs that Lucene reported have been fixed in the OpenJDK code, in addition to a fourth bug impacting Lucene that Oracle found (7070134, 7068051, 7044738, 7077439), and are included in current builds of JDK 7 Update 1 (and will remain included unless the fixes cause regressions). For more information on how Oracle prioritizes and works with external bug reports see this blog by Dalibor Topic. And while I'm at it - many thanks to all those of you who have tested JDK 7 and reported issues!

Q: I read the JDK 7 license. It mentions something about Commercial Features, what does that mean?
A: Sun versioned the end user license together with the binary, which made it clear what terms applied for a particular release. However, it also meant that a Java user would have to re-review the license for every new release (including update release), which lead to uncertainty around future licensing conditions. Oracle's approach is to minimize the number of licenses used for Java - ideally getting it down to only one. This means a more predictable and stable licensing situation, at the cost of a slightly more complex license text since it needs to be able to cover more scenarios. When we made JRockit free we modified the Binary Code License to make it cover all versions of Java, as well as JRockit. This was announced in one of my previous blog posts. The "Commercial Features" clause is there to allow us to port over value-add features from JRockit to the converged Hotspot/JRockit JVM starting with JDK 7. Full details on what features are non-free can be found in the product documentation. In the standard JDK 7 GA binaries, there are no commercial features so there is no risk that you use them by mistake. As we move such features to JDK 7 in a future update, our plan is to require an explicit flag to enable them. Note that these features are only restricted "for any commercial or production purpose" so individual developers need not worry. For full information, read the license text itself.

Thursday Jul 28, 2011

Java SE 7 is now GA

We are very happy to announce that JDK 7 is now GA. The release is on time according to the announcement we made at JavaOne last year and with no significant changes to release content. I would like to express a heartfelt thank you to all those at Oracle and elsewhere in the community that has helped with this release (honorable mentions).

With this important milestone behind us, our engineers are already busy with other projects such as JavaFX 2.0 and JDK 8. If you want to know more about JDK 7 or what's in the pipe, check out this podcast, the videos from the Java 7 launch and come and join us at JavaOne 2011!

Tuesday Feb 15, 2011

JDK 6 Update 24 Released

[Read More]
About

Henrik Stahl is VP of Product Management in the Java Platform Group at Oracle, and is responsible for product strategy for Java ME and SE.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today