By abuckley on Feb 15, 2012
I am pleased to announce that the Java SE 7 Editions of the Java Language Specification and the JVM Specification are available at http://docs.oracle.com/javase/specs/ in both PDF and HTML form.
We refer to these specifications as JLS7 and JVMS7 to emphasize that both are part of Java SE 7. Only a major Java SE release can change the Java language and JVM.
There is no JLS4 or JVMS3. Historically, the JLS and JVMS pre-date the Java Community Process and hence the concept of Java SE. They were versioned by book editions, e.g. JLS 1st Edition (JLS1) and JVMS 2nd Edition (JVMS2). As time went on, production difficulties caused the book editions to diverge, leading to a confusing situation where Java SE 5.0 incorporated JLS3 and a complex combination of JVMS2 + JSR 14 + JSR 45 + JSR 175 + JSR 201. In my view, it would be needlessly confusing if Java SE 7 incorporated JLS4 and JVMS3, while Java SE 8 incorporated JLS5 and JVMS4. Adopting the SE version number for the specifications is easier and more transparent for everyone. The specifications after JLS7 and JVMS7 will be JLS8 and JVMS8.
The specifications are written in DocBook and rendered as PDF and HTML via DocBook XSL. The HTML is well-formed and has a consistent naming scheme for files and anchors. You can link directly to any section via a predictable URL, such as:
Officially, the specifications have been available in PDF form since July 2011, in Annex 3 of the Final Release of JSR 336 (Java SE 7). The specifications on docs.oracle.com incorporate minor spelling and formatting improvements.
Per the JCP pages for JSR 901 and JSR 924, please report technical errors in the JLS or JVMS to me directly. All proposals for new features should be made through the JDK Enhancement Proposal Process.
I hope to publish JLS7 and JVMS7 as books later in 2012.