Sun's Java 6 and Java 7 implementations are available as open source under the term "OpenJDK" ("free software", even, since the license is GPL). The same goes for the Kaffe/Classpath and Apache Harmony JREs. Other vendor's implementations (like Apple and IBM) are closed source.
Java as a specification is open source but its implementation is vendor specific.
For a spec it doesn't make much sense to call it "open source". I'd say the spec is openly available, and can be implemented royalty free. Calling the result "Java" used to require a license from Sun, though; I'm not sure if that has changed.
If by "Java" you mean something besides the spec or any of its implementations, please be more specific what you're asking about.
Ping & DNS - updated with new look and Ping home screen widget
Joined: May 10, 2009
As the home page of OpenJDK itself says. It is :
the place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.
So again it boils down to the implementation part.
Having an insight of the various open source licenses (GPL, LGPL etc) available may also help catalyzing your debate.
Try to compare Sun's Java J2SE license and that of the OpenJDK.
I'm not sure if it technically requires a license, but it *does* require passing the compatibility test suite. Using Harmony in some applications would (appear) to require a commercial Java license. It's all a bit... murky.
Licenses can be classified as license required to procure a software [which includes various costs] and license required to use the software [which includes the modifications in the source code, distribution, copyrights etc; to be more open source specific].
There is a version of OpenJDK that implements the Java 6 specification, which is open source. And Sun is working on JDK 7 in the OpenJDK project; Sun Java SE 7 will be fully open source.
There is some history behind this. Sun decided some time ago to make their Java implementation open source. But they couldn't just make the source code available like that, because they used third party libraries for which they do not have the rights (for example for font rendering, SNMP and other things). To make Java fully open source, those third party libraries have to be replaced by open source software. That is what Sun is doing in the OpenJDK project. If you download the Java 6 version of OpenJDK, you get Sun Java 6 but with the proprietary parts replaced by open source software.
Note that, as already discussed above, you can't really say "Java is open source" because "Java" is a specification. Implementations of that specification can be open source - some are, and some are not.