A runtime image permits to run Java class and have then at minimal a jvm (ie java)
Prior to Java 9, there was only two fix run-time image
With the advent of the module system, it's also possible to create a modular/custom runtime image with
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 | ||
wiki/OpenJDK | Oracle previously Sun | OpenJDK is the official Java SE reference implementation | |
wiki/HotSpot | Oracle previously Sun | ||
Correcto | Amazon | ||
JRockit | Oracle previously BEA | ||
http://zulu.org/ | tested and certified build of OpenJDK | ||
Oracle | oracle | ||
wiki/IBM J9 | |||
Zing |
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
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:
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"