software development kit for development of a Java platform application.
The JDK is designed to be mainly used to communicate with the Java Runtime Environment (JRE), but it can be replaced by other JDK-based languages which can communicate with the JRE and JVM. Furthermore, Java bytecode can be compiled statically directly into native code only with a JVM but without the necessity of the Java runtime environment running dynamically.
It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle stewards. It provides software for working with Java applications. Examples of included software are the Java virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for Java programmers.
Oracle releases the current version of the software under the Oracle No-Fee Terms and Conditions (NFTC) license. Oracle releases binaries for the x86-64 architecture for Windows, macOS, and Linux based operating systems, and for the aarch64 architecture for macOS and Linux. Previous versions supported the Oracle Solaris operating system and SPARC architecture.
Oracle's primary implementation of the JVMS is known as HotSpot.
appletviewer– this tool can be used to run and debug Java applets without a web browserExperimental tools may not be available in future versions of the JDK.
The JDK also comes with a complete Java Runtime Environment (JRE), usually called a private runtime, due to the fact that it is separated from the "regular" JRE and has extra contents. It consists of a Java virtual machine and all of the class libraries present in the production environment, as well as additional libraries only useful to developers, such as the internationalization libraries and the IDL libraries.
Copies of the JDK also include a wide selection of example programs demonstrating the use of almost all portions of the Java API.
Other JDKs
In addition to the most widely used JDK discussed in this article, there are other JDKs commonly available for a variety of platforms, some of which started from the Sun JDK source and some that did not. All adhere to the basic Java specifications, but often differ in explicitly unspecified areas, such as garbage collection, compilation strategies, and optimization techniques. They include:
In development or in maintenance mode:
- Azul Systems Zing, low latency JDK for Linux;
- Azul Systems / OpenJDK-based Zulu for Linux, Windows, Mac OS X, embedded and the cloud;
- GraalVM GraalVM is an advanced JDK with ahead-of-time Native Image compilation.
- OpenJDK / IcedTea;
- Aicas JamaicaVM;
- IBM J9 JDK, for AIX, Linux, Windows, MVS, OS/400, Pocket PC, z/OS;
Not being maintained or discontinued:
- Apache Harmony;
- Apple's Mac OS Runtime for Java JVM/JDK for Classic Mac OS;
- Blackdown Java– Port of Sun's JDK for Linux;
- GNU's Classpath and GCJ (The GNU Compiler for Java);
- Oracle Corporation's JRockit JDK, for Windows, Linux, and Solaris;