The JDK is a development environment for building applications, applets, and components using the Java programming language. The JDK includes tools useful for developing and testing programs written in the Java programming language and running on the Java platform. While the Java Runtime Environment (JRE) allows you to execute Java applications, components and applets, the Java Development Kit (JDK) delivers a comprehensive set of tools for programmers to build, run, debug and even document the Java code.
Before you can start having fun programming in Java, you need to download and install the Java SE Development Kit. The JDK is the most important Java download you can make because once it's installed your computer will be able to understand and execute the programs you create.
- Oracle JDK Migration Guide has been updated for JDK 11 with a description of the major differences between the JDK 10 and JDK 11 releases as well as guidance on how you can migrate from JDK 8 to later JDK releases.
- JDK HTTP Client can be used to request HTTP resources over the network. It supports HTTP/1.1 and HTTP/2, both synchronous and asynchronous programming models, handles request and response bodies as reactive-streams, and follows the familiar builder pattern.
- An implementation of Transport Layer Security (TLS) 1.3 has been included in this release. See Java Secure Socket Extension (JSSE) Reference Guide.
- Local-variable syntax for lambda parameters enables you to declare formal parameters of implicitly typed lambda expressions with the var identifier. See Local-Variable Type Inference.
- You can run a program supplied as a single file of Java source code, including usage from within a script by means of "shebang" files and related techniques. See the java command.
- The Unicode 10.0.0 standard is supported, which includes 16,018 characters and 10 scripts that were introduced since Unicode 8.0.
- The deployment stack, required for Applets and Web Start Applications has been removed. This includes the Java Control Panel used for configuring the deployment technologies, the shared system JRE (but not the server JRE), and the JRE Auto Update mechanism.