Skip to content

[package list]

Java

License information

We use the Eclispe Adoptium Temurin releases, which are based on the OpenJDK releases.

OpenJDK is licensed under the GNU General Public License version 2.0 license a copy of which can also be found in the LICENSE file in the OpenJDK GitJHub repository.

The Eclipse Adoptium Temurin distributions are very careful about specifying their license consitions, and the licenses for all packages contained in the distribution. After installing and loading the Java module, the main license notice can be found in the file $EBROOTJAVA/NOTICE while more information for specific components is available in the subdirectories of the $EBROOTJAVA/legal directory.

User documentation

Note that there is also a version of Java already on the system installed with the OS. The contributed EasyConfigs are for those who need a more recent version then what may be on the system at that time.

As Java is already on the system and can be provided by modules also, you'll have to ensure that any program using Java is using the intended version. After loading the module provided by EasyBuild all variables should refer to that version and it should be first in the path. Also be careful when checking the manual pages. In the standard configuration of the man command on LUMI, you may be asked which section to use. In that case, 1 should give you the manual pages for the version in these modules while 1+1 should give you those from the system as they are further in the search path for manual pages.

We currently only provide installation recipes for LTS releases of Java.

Users are recommended to always load a Java module using only the major version, e.g.,

module load Java/17

rather then whatever patch level is currently installed on the system. That way it is easier to always load the latest patched version.

When installing using EasyBuild:

  • For a first install of a major version it is sufficient to simply call eb with the -r flag and the EasyConfig with the major-only version number, e.g.:

    eb Java-17.eb -r
    
  • However, due to the way EasyBuild searches for EasyConfigs on LUMI, if you want to update to a new version, you'll have to go to the directory with the right versions of the EasyConfig (.eb) files, e.b.,

    cd /appl/lumi/LUMI-EasyBuild-contrib/easybuild/easyconfigs/j/Java
    

    if you are just using the centrally provided EasyConfigs for Java, as otherwise EasyBuild will try to reproduce the previous installation automatically.

User-installable modules (and EasyConfigs)

Install with the EasyBuild-user module:

eb <easyconfig> -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider Java/<version>.

EasyConfig:

Technical documentation

Java in EasyBuild currently uses the OpenJDK distributions and no longer the ones provided by Oracle.

Installing Java in EasyBuild needs two EasyConfigs. The one with the major version only creates an Lmod file telling Lmod which version of Java should be loaded when that major version is given, while there is also a separate EasyConfig to install the specific version. So to install, e.g., Java 11, one would use

eb Java-11.eb -r

where the -r is important here to ensure that also the matching actual version gets installed.

Java can be installed in the special partition/common partition to avoid installing it multiple times in the same LUMI stack.

EasyBuild

Java 11 (LTS release)

  • The EasyConfigs come from the EasyBuilders repository with only some changes to the documentation, but we've also updated to the lates Java 11 release at the time of writing from the Eclipse Adoptium Temurin project.

  • Additional change though: JAVA_ROOT and JAVA_BINDIR are also set (JAVA_HOME is set by the EasyBlock) to ensure that all references to the system Java are removed when the Java module is loaded.

  • Also added sanity checks, basically to verify if the applications load.

Java 17 (LTS release)

  • Derived from standard EasyConfigs in the EasyBuilders repository just as Java 11, with the same changes and version updates.

  • Note that the list of binaries is different from Java/11 so the sanity checks are also reworked.

  • Update to 17.0.9 made in-house following the standard EasyConfigs.

Java 21 (LTS release)

  • Straightforward port of the EasyConfigs for 17, did not wait for an update in the EasyBuilders repository.

Archived EasyConfigs

The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.