By Henrik Stahl, Sr. Director, Product Management, Java Platform Group
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.
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
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
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
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
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 had a habit of creating a new license for every version of Java they released (including every update release). While the modifications were minor,
it still meant that you had to call in the lawyers every time to verify that any changes from the previous ones were still acceptable to you. Our goal is
to minimize the number of licenses we use, ideally getting it down to only one. 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.
Originally published on Henrik's blog.