Java licensing for commercial distribution

| | August 7, 2015

I’m thinking of using Java to write a program that I might try to sell one day. I’m new to Java so I have to ask, what types of tools/software/etc will I need (from development, to distribution, to user-friendly installation on users’ machines) that have licenses that must be considered to make sure they allow sales and closed source code, etc.?

Should we assume the user already runs at least one Java app, and therefore has a fairly recent version of Java on their machine?

Also, do you have any recommendations for specific tools that are definitely suitable for this purpose?

4 Responses to “Java licensing for commercial distribution”

  1. For cross platform distribution you might want to look into launch4j: http://launch4j.sourceforge.net/

    Also you might also want to obfuscate and optimize your code, for that you can use ProGuard: http://proguard.sourceforge.net/

    For your development use any of the open source tools available such as eclipse or netbeans, or even emacs with jdee.

    You should not assume users have Java, package a version of java with your application.

    For installation you might want to search for some open source solutions, the only one I know of is install4j and it is commercial. http://www.ej-technologies.com/products/install4j/features.html

  2. It’s very rare to see any development tools that restrict the way you can use software created using them. The only exception to that are libraries, and that is not a problem with standard Java libraries. Tools, IDE and so on – regardless of whether they’re free or not – will not affect how you can distribute your code.

    There are some weird exceptions, like BitKeeper source control software, the license of which prohibits anyone using it from trying to create software that could compete with BitKeeper – which is why I advise to stay as far away from the thing, and the company behind it, as possible. In the end, if you want to be absolutely legally clear, you’ll have to hire a lawyer and have him go through licenses and EULAs for all software you’re going to use in your development process, because of stuff like this.

    Some specific data points: Java itself is okay (both compiler and libraries); both Ant and Maven are okay; and Eclipse and NetBeans are okay.

  3. For development, you will likely need an IDE. The top picks are:

    • Eclipse (most features)
    • IntelliJ (non-free)
    • Netbeans (easiest to learn, imo)
    • A few others with much lower popularity

    For a free installation program, I’ve had the best experiences with IzPack, but there are others available. Similarly, to convert to a .exe for easy launching, I recommend Launch4J.

    I don’t think that its safe to assume that users have Java installed. Many will, but the versions will vary fairly widely, and the few that don’t will tend to cause problems. Obviously, this may vary depending upon your intended audience (and how much control you have over them).

  4. Chathuranga Chandrasekara on November 30, -0001 @ 12:00 AM

    This is a question that is really hard to answer because the requirement and the preferences of the users are different from each other.

    But I will tell you one entry point. Use ECLIPSE as your IDE to develop your Java code. It is an opensource one so you don’t need any licence for that. When you are working on your project you will need variety of other tools to do various stuff. Fortunately most of the essential functions are implemented as plugins for eclipse. You can seperately add them to eclipse.

    With time, you’ll get the experience and you will have enough knowledge to swich to the necessary tools etc

Leave a Reply