Java - Java Development Kit (JDK)

Java Conceptuel Diagram

About

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)

File Structure

A JDK image is simply a run-time image that happens to contain the full set of development tools and other items historically found in the JDK

The JDK can be found since Java 9 in two format:

  • non-modular (legacy, before Java 9)
  • modular (after Java 9)

Non-modular

A non-modular JDK image includes:

  • a copy of the JRE in its jre subdirectory
  • contains additional subdirectories:
    • bin: contains command-line development and debugging tools, e.g., javac, javadoc, and jconsole, along with duplicates of the binaries in the jre/bin directory for convenience
    • demo and sample directories contain demonstration programs and sample code, respectively
    • include contains C/C++ header files for use when compiling native code that interfaces directly with the run-time system
    • lib contains various JAR files and other types of files comprising the implementations of the JDK's tools, among them tools.jar, which contains the classes of the javac compiler.
  • release files: COPYRIGHT, LICENSE and README, and a release file that describes the image in terms of simple key/value property pairs, e.g.,

Example of JDK release file

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"

Modular

A modular JDK image is a modular image with the demo, man, and include directories.

How to

Get it

To obtain the JDK:

Manager

Jabba

See How to use Jabba, the JDK manager, On Windows ?

sdkman

https://sdkman.io/jdks

Asdf

https://asdf-vm.com/#/

OpenJdk

You can install OpenJdk as package.

Example:

sudo yum install java-1.8.0-openjdk-devel.x86_64

List of package names

  • To execute java applications (JRE) java-1.8.0-openjdk.x86_64
  • For compilation of Java. javac etc.. (JDK) java-1.8.0-openjdk-devel.x86_64
  • no audio/video. Just SE. E.g for embedded systems java-1.8.0-openjdk-headless.x86_64

Manually

Download an JDK image from a vendor and install it

For instance:

Self-Extracting Installation

  • Download the bin (Self-Extracting Installation)
jdk-6u<version>-linux-x64.bin
jdk-6u18-linux-x64.bin

  • Make it executable
chmod +x jdk-6u18-linux-x64.bin
  • Change to the directory where you would like the files to be installed.
cd installDir
  • The Java Development Kit files are installed in a directory called jdk.6.0_<version> in the current directory.
./jdk-6u <version>-linux-x64.bin





Discover More
Os Path Ant Home Windows
Ant - Installation (Windows based)

Installation of Ant JDK installed on your system, version 1.8 or later Download the latest binary Uncompress the binary in a directory called the...
Card Puncher Data Processing
Application - Software Development Kit (SDK)

A Software Development Kit (SDK) makes possible to develop application (ie to compile code, to run it , etc...) A typical SDK example is the Java Development Kit (also known as Java SDK, or JDK) for...
How to bundle a jvm in a Gradle application targeting Windows, Linux or Macos

The gradle application plugin does not give the possibility to embed a jvm. This page shows how to do with a minimal knowledge of Gradle code
Java Conceptuel Diagram
How to use Jabba, the JDK manager, On Windows ?

jabba is JDK manager that permits to install and switch from JDK The installation is done via a powsershell script. Jabba is installed in your windows home: C:\Users\userName\.jabba For now, you...
Java Conceptuel Diagram
Java - ( JDK | J2EE | J2SE )

SDK in Java core APIs for writing J2EE components, core development tools, and the Java virtual machine JDBC API 2.0 The Java 2 Platform, Standard Edition (J2SE) SDK is required to run...
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 - Runtime Image

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 JRE (a complete Java SE Platform implementation) JDK...
Path Bin Derby Home
Java DB - Getting Started

First steps with Java DB and the ij client tool. There is two installation option: Derby may have been already installed with the Jdk or you need to download it Java DB/Derby may be installed...
Javascript - Nashorn Engine

Nashorn is the JDK’s built-in JavaScript engine. Rhino was its predecessor. Background: The development of Nashorn started in late 2010 to experiment with the invokedynamic (292JSR 292) byte-code instruction....
Card Puncher Data Processing
Jenkins - Java (JDK)

in Jenkins Manage Jenkins > Global Tool Configuration



Share this page:
Follow us:
Task Runner