Java - Runtime Image

About

A runtime image permits to run Java class and have then at minimal a jvm (ie java)

List

Prior to Java 9, there was only two fix run-time image

  • JRE (a complete Java SE Platform implementation)
  • JDK (embeds a JRE and includes development tools and libraries)

With the advent of the module system, it's also possible to create a modular/custom runtime image with

Download

You can download a JDK or JRE from the following vendors.

Vendor Maintained by Description
AdoptOpn The binary are also in a repository by version
OpenJDK Oracle previously Sun OpenJDK is the official Java SE reference implementation
HotSpot Oracle previously Sun
Correcto Amazon
JRockit Oracle previously BEA
http://zulu.org/ tested and certified build of OpenJDK
Oracle oracle
IBM J9
Zing

Law

Type

Non-modular

Previously to Java 9, the image were non-modular meaning that the whole implementation were delivered even if your application was not using the full features that the Java Specification has.

The non-modular structure are defined in the runtime image page. See jre, jdk

Modular

Starting with Java 9, the image (JDK, JRE) distributed are modular image (per JEP 220). An application can also distribute a modular runtime-image created with the jlink linker

A modular run-time image contains:

  • bin directory contains any command-line launchers defined by the modules linked into the image. (On Windows it continues to contain the run-time system's dynamically-linked native libraries.)
  • conf directory contains the .properties, .policy, and other kinds of files intended to be edited by developers, deployers, and end users, which were formerly found in the lib directory or subdirectories thereof.
  • lib directory on Linux, macOS, and Solaris contains the run-time system's dynamically-linked native libraries. These files, named libjvm.so or libjvm.dylib, may be linked against by programs that embed the run-time system.
    • A few other files in this directory are also intended for external use, including src.zip and jexec.
    • All other files and directories in the lib directory must be treated as private implementation details of the run-time system. They are not intended for external use and their names, format, and content are subject to change without notice.
  • legal directory contains the legal notices for the modules linked into the image, grouped into one subdirectory per module.
  • a full JDK image contains, additionally, the:
    • demo
    • man
    • include directories
  • the release file with the special MODULES property: a space-separated list of modules. The list is topologically ordered according to the modules' dependence relationships, so the java.base module is always first.

Example:

IMPLEMENTOR="Eclipse Foundation"
IMPLEMENTOR_VERSION="Temurin-11.0.12+7"
JAVA_VERSION="11.0.12"
JAVA_VERSION_DATE="2021-07-20"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.vm.ci jdk.management jdk.unsupported jdk.internal.vm.compiler jdk.aot jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.crypto.mscapi jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.internal.le jdk.internal.opt jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.ldap jdk.naming.rmi jdk.net jdk.pack jdk.rmic jdk.scripting.nashorn jdk.scripting.nashorn.shell jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported.desktop jdk.xml.dom jdk.zipfs"
OS_ARCH="x86_64"
OS_NAME="Windows"
SOURCE=".:git:179062f52626"
BUILD_SOURCE="git:2349d4e"
BUILD_SOURCE_REPO="https://github.com/adoptium/temurin-build.git"
SOURCE_REPO="https://github.com/adoptium/jdk11u.git"
FULL_VERSION="11.0.12+7"
SEMANTIC_VERSION="11.0.12+7"
BUILD_INFO="OS: Windows Server 2012 R2 Version: 6.3"
JVM_VARIANT="Hotspot"
JVM_VERSION="11.0.12+7"
IMAGE_TYPE="JDK"

Powered by ComboStrap