I would like to ask a few questions about software licenses, with regards to a (Java) program I am making. I am very very new to licenses, so please bear with me.

1. If I produce a Java program using 'internal' libraries (such as JavaFX), am I allowed to sell my program? Do I need to include (distribute) my source code?

2. If I produce a Java program using 'external' libraries (in addition to 'internal ones') which are licensed under the GPL license, am I able to sell my program? Do I need to include (distribute) my source code OR the external library source OR both?

3. Does selling a program which makes use of GPL licensed 'external' library, give the purchaser the option of reselling and charging any price ($0.00-$infinite), (and making potentially infinite, copies of) my program?

4. Are there any other notable constraints that using a external library (licensed under this GPL license) in my program, will incur?


1 Answer 1

  1. With internal libraries, you don't need to distribute them at all. The end user will have their own copy in their JRE. You only distribute code you own so you doesn't have any constraints.

  2. If you distribute code using GPL libraries, your code would need to be compatible with the GPL license which includes making all the code of the combined work available.

    You're free to sell GPL software but since others can redistribute too you'll need to provide a reason why people should buy it from you, like extra support.

  3. Yes, people who obtain your software can redistribute it under the terms of the GPL. This allows charging any price.

  4. Check the actual text of the GPL carefully before releasing software to make sure you understand what you're agreeing to. Anyone that obtains your software would be able to modify and distribute it under the GPL.

Other licenses like the LGPL are quite common for libraries because they only cover changes to the library itself and not you own code. You might want to look for libraries with that style of license instead.

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