Skip navigation.
Home

The Sun Java VM and compiler are now GPL

Today is a great day to be a Java packager. Sun has finally announced that they will be licensing the JDK under the GNU General Public License v2 (GPLv2). This is going to have a huge impact on how we package Java in the longer run, but will not change anything in the immediate future (in the short-term, enjoy the new Java binary distribution license -- the DLJ).

Currently, only the JDK source code for the Java compiler (javac) and the Hotspot VM is available (Sun also open-sourced J2ME and J2EE, aka "Glassfish", but these are not part of the standard JDK). In particular, the Java Standard Library, including Swing and most of the other library parts are not out yet. As I write this, the GNU Classpath gang is feverishly trying to get the Sun VM bootstrapped with Classpath, and given their track record, I expect to see the result sooner rather than later.

In a few months, most of the library should also be opened up, and license encumbered parts will quickly be replaced by an armada of willing and able open-source hackers (probably the same guys who've offered their eyeballs to make all bugs seem shallow). No, seriously, I think that the problematic parts will be replaced quickly enough.

At that time, we can probably get around to providing compilable sun-jdk packages for serious users and ricers alike. I wouldn't be all that surprised if we could also get PPC and SPARC support working, too. Time will tell, but the code exists, and is now free.

It will of course also be interesting to see where the VM code ends up as time goes by. It contains a lot of really nice engineering that could potentially benefit other VM-based languages that resemble Java (without naming any). However, the code base is rather immense, so wrapping one's head around it will take a while. We live in interesting times.

I find it reassuring that the good work of the Classpath and Kaffe communities did not go unmentioned in the webcast where the GPLing was announced, and that the final license follows the Classpath exception.