Eclipse JustJ: Packaged Java™ Runtimes for Redistribution

The Eclipse IDE 2020-09 release is just a few months away and for the first time, the Eclipse Installer will give end users the option to install the required Java™ Runtime Environment (JRE) as part of the installation. The new feature is enabled by the Eclipse JustJ project.

The JustJ project provides fully functional Java runtime packages that can be redistributed by Eclipse Foundation projects. The technology has benefits for end users, package creators, and enterprises that redistribute technologies hosted by the Eclipse Foundation. Project Lead, Ed Merks, explains.

Q. Why is the JustJ project needed?

A. Much of the software developed at the Eclipse Foundation, including the Eclipse IDE, is written in Java and relies on end users having the right JRE version installed. For Java developers, this isn’t an issue. They’re already very familiar with Java Development Kits (JDKs), where to download them, and they do this all the time. But, developers who work in other programming languages don’t want to have to think about Java versions or where to get them.

With JustJ, non-Java developers never have to think about Java runtime versions. The Eclipse Installer will include the required JRE and developers can simply install a JRE with the software they are installing, if they want to. That is, they can choose whether to use a JRE provided by JustJ instead of one that’s already installed on their computer. Similarly, some of the pre-packaged Eclipse IDEs will include a JRE so the developer can simply unpack it and run it with no concern about the Java runtime versions on their computer. It’s one-stop shopping with complete flexibility. 

In the case of the Eclipse IDE, including the JRE in the installer and in the pre-packaged download could also help to attract developers who are currently using other IDEs that include Java.

Q. Which projects can the JustJ technology be used with?

A. Our first step is to include the JustJ technology with the Eclipse Installer and the individual pre-packaged Eclipse IDEs, but it can be used with any Eclipse project that’s based on Java. With input from project teams, we can package JREs in forms that are easily consumable for their project.

Q. Why is this capability being delivered now?

A. Until about a year ago, the Eclipse Foundation didn’t have the rights needed to redistribute Java runtimes. But, it’s good timing because the 2020-09 release will require end users to have the Java 11 runtime environment installed instead of Java 8 so many developers will need to upgrade their JRE.

Q. What does JustJ mean for people who build products and create packages at the Eclipse Foundation?

A. The JustJ project repackages the JRE as a p2 installable unit that is available through p2 repositories and packaged downloads so it’s easy to include in builds. People can simply indicate their software requires a specific JRE and the product is built and bundled with the JRE embedded. They can also test with that JRE version to verify the software runs well with it.

Q. What about external companies that redistribute Eclipse Foundation technologies?

A. Many of these companies are creating this same kind of infrastructure for embedding JRE p2 installable units into their products. With JustJ, they no longer need to do that

Q. Where can people find information about building products that include JREs?

A. The JustJ website provides complete documentation, including tutorials, examples, videos, and online references to help people understand the end-user experience and include JREs in their installation packages. The site also provides links to JRE distributions and update sites.

Q. How does adding the JustJ technology affect package size?

A. The full JRE is about 70 MB while most of the Eclipse IDE packages are between 150 and 300 MB. We’ve been stripping out debug information and reducing the number of modules that are available to reduce the size. These efforts have been a big focal point in the project and the website explains the reasoning behind the different ways we’re packaging JREs to reduce size.

Q. How is the JustJ project handling Java releases? Which JRE will be available with the Eclipse IDE 2020-09 release?

A. JustJ will always provide the latest available Java JRE release, but it’s generally backwards-compatible so it will also provide the minimum JRE version required by the software.

For the 2020-09 IDE release, JustJ will provide JRE 14, which will be the latest release at the time, and potentially also JRE 11. JRE 11 is a long-term support Java release and the minimum requirement for this IDE release. We know that for production purposes, many companies and developers use long-term support versions of Java.

Q. How can the community get involved in JustJ?

A. Right now, we need input on requirements for building packages, how many different versions of JREs will be needed, and whether people want stripped-down or minimized JRE versions.

The best way to provide this input is through the JustJ Bugzilla link on our Support page. This page also includes a link to the JustJ Forum if people have general questions.

We also have a mailing list the community can subscribe to.

About the Author

Ed Merks

Ed Merks