I have developed a Java program for academic purposes (non-profit, non-open-source). In the process, I made extensive use of many apache common libraries. The program is now to be set free on the net, so I was wondering what my precautions should be. My program will (preferably) consist of a single .jar file, having all the apache commons .jar files living inside it (I didn't modify them in any way).

Is the described approach just enough? Or do I have to take any more steps such that I don't commit an infraction?


  • 2
    See item 4 in apache.org/licenses/LICENSE-2.0.txt
    – johannes
    Mar 27, 2013 at 1:45
  • @johannes: in more concret terms, what does it mean? I have to put a file in my application directories with each library's name and with the full license as its contents? Mar 27, 2013 at 1:47
  • 2
    The real meat is in Section 2: "each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form." In other words, you can do pretty much what you want to with the Apache Commons libraries, so long as you do the things in Section 4. Mar 27, 2013 at 23:21
  • 2
    Section 4 basically says "Communicate." Provide copies of the license. If you change a file, say so. If headers or notices were included in the software you used, keep them there. It also says that notices don't change the terms of the license. Mar 27, 2013 at 23:25

1 Answer 1


Here's a nice lay summary of Apache license.


...here's what the Apache license says in layman's terms:

It allows you to:

  • freely download and use Apache software, in whole or in part, for personal, company internal, or commercial purposes;
  • use Apache software in packages or distributions that you create.

It forbids you to:

  • redistribute any piece of Apache-originated software without proper attribution;
  • use any marks owned by The Apache Software Foundation in any way that might state or imply that the Foundation endorses your distribution;
  • use any marks owned by The Apache Software Foundation in any way that might state or imply that you created the Apache software in question.

It requires you to:

  • include a copy of the license in any redistribution you may make that includes Apache software;
  • provide clear attribution to The Apache Software Foundation for any distributions that include Apache software.

It does not require you to:

  • include the source of the Apache software itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it;
  • submit changes that you make to the software back to the Apache Software Foundation (though such feedback is encouraged).

Judging from that, I'd say you need to include the license, do proper attribution, and leave the "prominent notices" if you change any Apache Commons libraries internals specifying what you changed. The license also has certain patent advantages as patent owners submitting contributions give you an implied patent license over them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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