Java - Runtime Image

Java Conceptuel Diagram

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
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

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"





Discover More
Java Conceptuel Diagram
Java - Compile (class file)

The compilation create a class source.class file from a java source file ie source.java file. The create class language is called and can be run on any OS with any java executable (ie ) The...
Java Conceptuel Diagram
Java - JRE

Java Runtime Environment (JRE) is a run-time image, which is a complete implementation of the Java SE Platform and contains the runtime executable (mostly the JVM, ie java) in order to run java application....
Java Conceptuel Diagram
Java - Java Development Kit (JDK)

The JDK is a SDK that: embeds a JRE and includes development tools and libraries (to create and compile Java applications) The JDK is also known as: Software Development Kit (J2SE SDK) A JDK...
Java Conceptuel Diagram
Java - Java Virtual Machine (JVM|Java)

Ie the java executable: Different JVM exist and are embedded/available in a image Options that: begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are...
Java Conceptuel Diagram
Java - Module

A Java module is a packaging format that create a modular JAR file. It's a feature of JDK 9 from the Java Platform Module System (JPMS) that divide the monolithic rt.jar and tools.jar files into 75 distinct...
Java Conceptuel Diagram
Jlink to create a custom jvm image

jlink is a linker tool that can be used to create a custom modular run-time jvm image



Share this page:
Follow us:
Task Runner