
OpenJDK's documentation is also copyrighted, but their license allows free distribution. Copying them without Oracle's express permission is likely to get you acquainted with a particularly nasty set of lawyers.

The documentation, including JavaDocs of the Oracle product will carry an Oracle copyright notice. Pre-installed on some recent systems, I think.ĭocumentation is a separate matter. OpenJDK is open-source so you could ship that, but it's not really necessary since anyone can pull down their own copy directly and in many cases it's a standard OS installable package.

That would also be true of other JVMs such as IBM's J9. You cannot ship your product with a copy of the Oracle JDK without buying an explicit Oracle licence to do so, and that would not be cheap. And for that matter, you can have multiple brands and versions of Java installed on a single machine. Not the same vendor, nor even the same version, as long as they are compatible. As I said, they don't have to be the same. The other is the JDK or JRE that your customer uses to run the app. One is the JDK that you used to develop your app. However, note that there are potentially 2 or more JVM installations to consider. The JRE would be covered by its own license, and in the case of OpenJDK, it allows running anyone's commercial product classes.

Java, of course, requires a JRE to run, but Java is "write once/run anywhere" and therefore you don't need the same JRE as the one that was part of your development JDK, just one that's compatible with it. I cannot give away or sell copies of Microsoft C, but I can sell products I compiled under it. In fact, it's a general rule that the output of a software build system isn't subject to the same license restrictions as the build system itself.

The only exception would be if you included vendor-licensed class files in your product, and Java has a rich enough set of third-party libraries with open licenses, that that's not something most apps do. The output of the Java compiler and build tools isn't subject to the JDK license. It doesn't actually matter whose JDK you use to develop the app, whether Oracle, Open Source, or even IBM.
