The Java Development Kit is an implementation of either one of the Java SE, Java EE or Java
ME platforms released by Oracle Corporation in the form of a binary product aimed at Java
developers on Solaris, Linux, Mac OS X or Windows.
Since the introduction of the Java platform, it has been by far the most widely used Software
Development Kit.
On 17 November 2006, Sun announced that it would be released under the GNU General Public
License, thus making it free software.
This happened in large part on 8 May 2007, when Sun contributed the source code to the
OpenJDK.
JDK contents The JDK has as its primary components a collection
of programming tools, including: appletviewer – this tool can be used to
run and debug Java applets without a web browser apt – the annotation-processing tool
extcheck – a utility which can detect JAR-file conflicts
idlj – the IDL-to-Java compiler.
This utility generates Java bindings from a given Java IDL file.
jabswitch – the Java Access Bridge.
Exposes assistive technologies on Microsoft Windows systems.
java – the loader for Java applications.
This tool is an interpreter and can interpret the class files generated by the javac compiler.
Now a single launcher is used for both development and deployment.
The old deployment launcher, jre, no longer comes with Sun JDK, and instead it has been
replaced by this new java loader.
javac – the Java compiler, which converts source code into Java bytecode
javadoc – the documentation generator, which automatically generates documentation from
source code comments jar – the archiver, which packages related
class libraries into a single JAR file.
This tool also helps manage JAR files.
javafxpackager – tool to package and sign JavaFX applications
jarsigner – the jar signing and verification tool
javah – the C header and stub generator, used to write native methods
javap – the class file disassembler javaws – the Java Web Start launcher for
JNLP applications JConsole – Java Monitoring and Management
Console jdb – the debugger
jhat – Java Heap Analysis Tool jinfo – This utility gets configuration
information from a running Java process or crash dump.
jmap – This utility outputs the memory map for Java and can print shared object memory
maps or heap memory details of a given process or core dump.
jmc – Java Mission Control jps – Java Virtual Machine Process Status
Tool lists the instrumented HotSpot Java Virtual Machines on the target system.
jrunscript – Java command-line script shell.
jstack – utility which prints Java stack traces of Java threads
jstat – Java Virtual Machine statistics monitoring tool
jstatd – jstat daemon keytool – tool for manipulating the keystore
pack200 – JAR compression tool policytool – the policy creation and management
tool, which can determine policy for a Java runtime, specifying which permissions are
available for code from various sources VisualVM – visual tool integrating several
command-line JDK tools and lightweight performance and memory profiling capabilities
wsimport – generates portable JAX-WS artifacts for invoking a web service.
xjc – Part of the Java API for XML Binding API.
It accepts an XML schema and generates Java classes.
Experimental tools may not be available in future versions of the JDK.
The JDK also comes with a complete Java Runtime Environment, 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.
Ambiguity between a JDK and an SDK The JDK forms an extended subset of a software
development kit.
It includes "tools for developing, debugging, and monitoring Java applications".
Oracle strongly suggests that they now use the term "JDK" to refer to the Java SE Development
Kit.
The Java EE SDK is available with or without the "JDK", by which they specifically mean
the Java SE 7 JDK.
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 which did not.
All of them adhere to the basic Java specifications, but they often differ in explicitly unspecified
areas, such as garbage collection, compilation strategies, and optimization techniques.
They include: In development or in maintenance mode:
OpenJDK / IcedTea; GNU's Classpath and GCJ;
Aicas JamaicaVM; IBM J9 JDK, for AIX, Linux, Windows, MVS,
OS/400, Pocket PC, z/OS; Oracle Corporation's JRockit JDK, for Windows,
Linux, and Solaris; 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
See also
Classpath Java platform
Java version history
References
External links Oracle Java SE
IBM Java technology JDK Open source JDK 7 project
Open source JDK project Community support
GNU Classpath – a Free software JDK alternative Javadoc Developer Kit Search Engine
Oracle's Java SE Support Roadmap