Java Language Java Editions, Versions, Releases and Distributions Differences between Java SE JRE or Java SE JDK distributions


Sun / Oracle releases of Java SE come in two forms: JRE and JDK. In simple terms, JREs support running Java applications, and JDKs also support Java development.

Java Runtime Environment

Java Runtime Environment or JRE distributions consist of the set of libraries and tools needed to run and manage Java applications. The tools in a typical modern JRE include:

  • The java command for running a Java program in a JVM (Java Virtual Machine)
  • The jjs command for running the Nashorn Javascript engine.
  • The keytool command for manipulating Java keystores.
  • The policytool command for editing security sandbox security policies.
  • The pack200 and unpack200 tools for packing and unpacking "pack200" file for web deployment.
  • The orbd, rmid, rmiregistry and tnameserv commands that support Java CORBA and RMI applications.

"Desktop JRE" installers include a Java plugin suitable for some web browser. This is deliberately left out of "Server JRE" installers.linux syscall read benchmarku

From Java 7 update 6 onwards, JRE installers have included JavaFX (version 2.2 or later).

Java Development Kit

A Java Development Kit or JDK distribution includes the JRE tools, and additional tools for developing Java software. The additional tools typically include:

  • The javac command, which compiles Java source code (".java") to bytecode files (".class").
  • The tools for creating JAR files such as jar and jarsigner
  • Development tools such as:
    • appletviewer for running applets
    • idlj the CORBA IDL to Java compiler
    • javah the JNI stub generator
    • native2ascii for character set conversion of Java source code
    • schemagen the Java to XML schema generator (part of JAXB)
    • serialver generate Java Object Serialization version string.
    • the wsgen and wsimport support tools for JAX-WS
  • Diagnostic tools such as:
    • jdb the basic Java debugger
    • jmap and jhat for dumping and analysing a Java heap.
    • jstack for getting a thread stack dump.
    • javap for examining ".class" files.
  • Application management and monitoring tools such as:
    • jconsole a management console,
    • jstat, jstatd, jinfo and jps for application monitoring

A typical Sun / Oracle JDK installation also includes a ZIP file with the source code of the Java libraries. Prior to Java 6, this was the only publicly available Java source code.

From Java 6 onwards, the complete source code for OpenJDK is available for download from the OpenJDK site. It is typically not included in (Linux) JDK packages, but is available as a separate package.