Java 2 source code release: More open, but not open source

Plus: How to get your own copy of the Java 2 source code

In a change from previous licensing arrangements, on February 24 Sun Microsystems made the Java 2 Software Development Kit (SDK) source code available for immediate download. Those who wish to use the source code for noncommercial research purposes can download the code at no charge, after accepting a long license agreement. (See this article's sidebar for download information.)

According to John Zukowski of the MageLang Institute and JavaWorld, developers will receive the benefit of keeping their innovations proprietary, instead of sharing them with Sun:

"What they've done now hasn't really changed the access but [it does allow] you to do different things with that access. Previously, any changes, improvements, enhancements a company made had to be returned to Sun ... [Such changes were then] provided to the other licensees. This discouraged improvements."

Moreover, according to Sun, licensees can share innovations among themselves without informing Sun or paying any additional royalties.

The new licensing model requires no up-front licensing fees, but Sun does require royalty payments from licensees who modify the source code and then distribute derivative products for internal production use or as commercial products.

The Java 2 SDK code release is part of Sun's Community Source Licensing program, which also includes other Sun technologies such as Jini. According to Sun, the new model blends the best aspects of open source and proprietary software license models.

"When we were looking at ways to change the licensing model, there used to be two choices: open source -- opening it up to everyone -- and proprietary," says Elizabeth McNichols, spokesperson for Sun. "The Community Source License tries to combine them both in an effort to evolve the technology while maintaining compatibility."

The 7,613-word Java 2 SDK Community Source legal document includes five license categories: Research Use, TCK (Technology Compatibility Kit), Internal Deployment Use, Commercial Use, and Trademark Use. (For the complete Java 2 SDK license, see Resources.)

While the Community Source License isn't "open source" as defined by other licensing models such as the GPL, according to Zukowski, "It's open in the sense that as long as the changes you make pass the compatibility test, you can keep them, instead of passing them on to Sun."

At the February 11 CityJava user group meeting in San Francisco, a panel of industry leaders -- including Jim Mitchell, VP of architecture and technology for Sun's Java Software Division -- discussed open source vs Sun's Community Source License program. One issue of contention among the panelists was the length and complexity of the license agreement for Sun's Jini technology as compared to open source licenses, a concern many believed would carry over to the as-of-then unpublished Java 2 license.

Tim Wilkinson, CEO of Transvirtual, asserted, "One of the problems with the [Jini] licensing ... is it's too complicated. And if somebody wants to start developing for it and it's complicated, and they don't have a lawyer, then they're just not going to do it ... You need to reduce the barrier to innovation."

Mitchell, speaking about the Java 2 license agreement prior to its February 24 release, acknowledged to the panel his own concern: "I'm nervous about its length -- I'll admit that. And I will do my best to go in and red-line it and take things out of it ... The one great thing I do say about open source is the license has the right length -- it's zero."

In a matter related to the Java 2 source code release, Sun plans to release the source code to Personal Java the week of March 1 to 5 and the source code to Embedded Java sometime in the near future, according to Sun's McNichols.

How to download the Java 2 source code

Just as Sun promised, it is fairly easy to download the Java 2 source code. Follow these steps:

  1. Before you can download the Java 2 SDK, Sun requires you to create a user name and password at the Sun Software shop. Go to: Create a user account by filling in your name, address, and so on, on the standard form.
  2. After you've created an account, go to Sun's "Java 2 SDK Community Source Licensing" page at This page provides an overview of Sun's new Java 2 licensing model along with links to technical information, an overview of the Community Source Licensing program, and how to download the Java 2 SDK.
  3. After reading the previous page, click the How to Download button followed by the Begin Download button.
  4. Sign on by using your newly created user name and password.
  5. Next comes the 7,613-word license agreement. You must accept the terms of this agreement before you can download the Java 2 source code. When ready, click Accept, then Continue.
  6. You next receive an order number. Either write this number down or print the page for future reference. Choose a download location near you, then click on the JSSDK 1.2 Source file icon.
  7. Next, choose the format you want to download: gz format (19.78 MB), Z format (30.9 MB), or zip format (24.94 MB). (The JavaWorld download took about 10 minutes over a T1 line.)

The complete Java 2 SDK -- 69.8 MB uncompressed -- contains 7,293 files located in 884 folders.

Scott Plamondon is JavaWorld's Senior Editor.

Learn more about this topic

  • For the complete Java 2 SDK license agreement, go to
  • To create a Sun user account for software downloads, go to
  • For a Sun Community Source Licensing FAQ, go to
  • To read the reasoning behind Sun's new licensing model, see "Sun Community Source License Principles," by Richard Gabriel and Bill Joy, at
  • For other downloads from Sun, visit the Community Source Code Licensing Community home page
  • The CityJava San Francisco Java User Group site includes transcripts of recent meetings (including the February 11 open source discussion), presentations, and schedules for upcoming meetings