I am about to decide on the license I can attribute to my free-libre open source software (FLOSS). I have used the Stanford Core NLP released as GPL3+. I have also used the JAXB API which, although integrated into Java nowadays (if I am not mistaken) is used by the Standford library as explicit link.

I have come to realise that the JAXB API s released under a dual license specifying a Common Development and Distribution License (CDDL) v1.1 / GPLv2 + classpath exception dual license. Now I am a bit confused.

Releasing my software under a FLOSS license would not be possible as GPL2 and GPL3+ are incompatible. However, Stanford Core NLP lists, as a dependency, JAXB API.

How can a free open source software link to a library and be published under a FLOSS that would prohibit me from myself linking to said library?

1 Answer 1


The trick is in the classpath exception. The classpath exception says

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.

So although the library is under GPLv2, it doesn't require you to license any components or the project in its entirety under the GPLv2. The authors of the Stanford Core NLP released under GPLv3+. The project as a whole is GPLv3+, but contains parts (the JAXB API) under GPLv2.

If you create a work depending on the Stanford Core NLP, your project must, in its entirety, be GPLv3+, but you are allowed to have separate parts (i.e. JAXB API) under less restrictive licenses. The classpath exception makes this less restrictive, and allows for a combined work to be created under the GPLv3+

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.