


So, in order to work on both of these projects, you will need to install multiple versions of the JDK on your machine and be able to switch between them. Or, suppose you are working on multiple projects, some of which use Java 8 and some of which are new projects using Java 11. Java 8, and you don't want to accidentally break your project. Sometimes, you want to learn and explore the latest version of Java, but you cannot install it on your machine because you and your team are working on an older version, e.g. But in my current project, we are still using Java 8, and now, I want to upgrade and learn Java 11, but unfortunately, I cannot install it.Īnd this happens a lot with Java developers.

By that, I mean that the same code would make up both versions of the app, and which portions are enabled or used would be dependent on some public static data member somewhere: if (SomeClass.Some time back, I wrote the article Java Lambda Expression Explained with Example, but it was easy for me to explore Java 8 because I was using it in my project and allowed to install it. I'm going to assume that the differences could be handled by some sort of global free/not-free flag. It is difficult to answer this, since we don't know what the difference is between the free and not-free versions of your app. You have various discussions on this topic here and there, but basically the solution is akin to duplicate the project.
