The basic tool you need in order to create apps in Java

Java Development Kit (64-bit)

Java Development Kit (64-bit)

  -  205.86 MB  -  Freeware
  • Latest Version

    Java JDK 24.0.2 (64-bit) LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 / Windows 8 / Windows 10 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    Oracle / External Link

  • Filename

    jdk-24_windows-x64_bin.exe

  • MD5 Checksum

    5f5b2b7cf068b618c557f2b5a0eb36dd

Java Development Kit (JDK) is a powerful software package designed for Java developers. It provides a comprehensive set of tools, libraries, and documentation necessary for developing, debugging, and deploying Java applications.

With its robust features and extensive support, the JDK 2025 has become an indispensable resource in the world of Java development.



Java Development Kit (JDK) 64bit is a software package developed by Oracle Corporation that serves as a complete development environment for Java applications.

It includes a collection of programming tools, such as compilers, debuggers, and other utilities, along with a rich set of libraries and documentation. It ensures that developers have all the necessary components to create, test, and deploy Java programs efficiently.

Features

Compiler and Runtime Environment
It comes with the Java Compiler, which translates Java source code into bytecode that can run on any Java Virtual Machine (JVM). It also includes the Java Runtime Environment (JRE) that allows you to execute Java applications on your machine.

Libraries and APIs
It provides a vast set of libraries and APIs that simplify the development process. These libraries cover a wide range of functionalities, including database access, networking, graphical user interface (GUI) development, and much more.

Java Development Kit (64-bit) Screenshot 1

Integrated Development Environment (IDE) Support
Although the app itself does not include an IDE, it seamlessly integrates with popular Java IDEs like Eclipse, IntelliJ IDEA, and NetBeans. This allows developers to leverage the JDK's capabilities within their preferred development environment.

Documentation
It offers extensive documentation, including the Java API documentation, which serves as a valuable resource for understanding the available classes, methods, and their usage. It also includes guides, tutorials, and sample code to assist developers in mastering Java development.

Debugging and Profiling Tools
The JDK incorporates powerful debugging tools like jdb and jstack, which aid developers in identifying and resolving issues in their code. Additionally, it provides profiling tools like JConsole and VisualVM for performance analysis and optimization.

JDK 20 is available now!

Java Development Kit (JDK) 20 is the most recent release of the Java SE Platform, while JDK 17 LTS (Long-Term Support) is the latest long-term support release.

The JDK 20 binaries can be used freely in production and redistributed without any cost, as per the Oracle No-Fee Terms and Conditions.

Under these terms, JDK 20 will continue to receive updates until September 2023. After that, it will be succeeded by JDK 21.

How to Use

Download and Installation: To use the app, visit the official Oracle website or FileHorse and download the appropriate JDK version for your operating system.

Setup and Configuration: Follow the installation instructions provided by Oracle to set up the JDK 2025 on your machine. Ensure that you configure the environment variables correctly to enable command-line access to the tools.

Writing and Compiling Java Code: Use a text editor or an IDE to write your Java code. Save the code with the .java extension. Open a command prompt or terminal, navigate to the directory where the code is saved, and use the Javac command to compile the Java source code into bytecode.

Running Java Applications: After compiling the code, use the Java command followed by the name of the class containing the main method to execute the Java application.

FAQ

Q1. What is the difference between the JDK and the JRE?
A1. The JDK (Java Development Kit) is a complete development environment that includes the Java Compiler, libraries, and tools required for developing Java applications. The JRE (Java Runtime Environment), on the other hand, is a subset of the app and only provides the necessary components to run Java applications.

Q2. Can I use the JDK for commercial purposes?
A2. Yes, it can be used for both commercial and non-commercial purposes. However, it's essential to review and comply with Oracle's licensing terms and conditions.

Q3. Is the JDK compatible with multiple operating systems?
A3. Yes, the app is available for various operating systems, including Windows, macOS, and Linux distributions. Ensure that you download the appropriate version for your specific operating system.

Q4. Are there any alternatives to the JDK for Java development?
A4. Yes, some alternatives to the app include OpenJDK, Amazon Corretto, and IBM SDK for Java. These alternatives offer similar features and functionalities, and you can choose the one that best suits your needs.

Q5. Does the JDK support the latest version of the Java programming language?
A5. Yes, the JDK is regularly updated to support the latest version of the Java programming language. It is recommended to keep your app version up to date to leverage the newest language features and enhancements.

Pricing

The JDK is FREE to download and use. However, for commercial use, it is important to review and comply with Oracle's licensing terms and conditions.

PROS
  • Comprehensive development environment with all the necessary tools and libraries.
  • Extensive documentation and resources for Java developers.
  • Regular updates and compatibility with the latest Java programming language versions.
  • Seamless integration with popular Java IDEs.
  • Robust debugging and profiling tools.
CONS
  • The licensing terms for commercial use can be complex and may require careful review.
  • Setting up and configuring the environment variables can be challenging for beginners.
  • The installation package can be relatively large, requiring significant disk space.
Conclusion

The Java Development Kit (JDK) is an indispensable software package for Java developers, providing a complete development environment with powerful tools, libraries, and documentation. With its extensive features, seamless integration with popular IDEs, and support for the latest Java language versions, it empowers developers to build robust and scalable Java applications.

While the licensing terms for commercial use can be complex, the tool remains the go-to choice for professional Java development. Whether you are a beginner or an experienced developer, the JDK is a must-have toolset for unleashing the full potential of Java programming.

Also Available: Java Development Kit (32-bit) and Java Development Kit for Mac

Why is this app published on FileHorse? (More info)
  • Java JDK 24.0.2 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Java JDK 24.0.2 (64-bit) Screenshot 1
  • Java JDK 24.0.2 (64-bit) Screenshot 2
  • Java JDK 24.0.2 (64-bit) Screenshot 3
  • Java JDK 24.0.2 (64-bit) Screenshot 4
  • Java JDK 24.0.2 (64-bit) Screenshot 5

What's new in this version:

IANA TZ Data 2025b:
- New zone for Aysén Region in Chile which moves from -04/-03 to -03

Removed Features and Options:
security-libs/java.security ➜ Removed Baltimore CyberTrust Root Certificate After Expiry Date (JDK-8303770):
- The following expired root certificate has been removed from the cacerts keystore:
- + alias name "baltimorecybertrustca [jdk]"
- Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE

security-libs/java.security➜ Removed Two Camerfirma Root Certificates (JDK-8350498):
- The following root certificates, which are terminated and no longer in use, have been removed from the cacerts keystore:+ alias name "camerfirmachamberscommerceca [jdk]"
- Distinguished Name: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU + alias name "camerfirmachambersignca [jdk]"
- Distinguished Name: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU

Other Notes:
- security-libs/java.security ➜ Added 4 New Root Certificates from Sectigo Limited (JDK-8359170)
- The following root certificates have been added to the cacerts truststore:
- Sectigo Limited
- sectigocodesignroote46
- DN: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB
- Sectigo Limited
- sectigocodesignrootr46
- DN: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB
- Sectigo Limited
- sectigotlsroote46
- DN: CN=Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB
- Sectigo Limited
- sectigotlsrootr46
- DN: CN=Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB

install/install ➜ Sign oracle.com JDK RPM Packages with OL9 Signing Key (JDK-8351906 (not public)):
- The oracle.com JDK RPM packages meant to be downloaded directly to the target system, now are signed with the OL9 signing key instead of the OL8 signing key. The RPM packages hosted on YUM repositories remain signed with the appropriate key for the target repository.

tools/jpackage ➜ jpackage No Longer Includes Service Bindings by Default for Generated Run-Time Images (JDK-8345185):

Starting with JDK 25, jpackage no longer includes service bindings for a run-time image that it creates. Prior to JDK 25, jpackage would include service bindings for run-time images. As a result, the generated run-time images produced by jpackage might not include the same set of modules as it did in prior versions. The previous behavior can be achieved by adding the --bind-services jlink option to the default jlink options jpackage uses:
- jpackage [...] --jlink-options "--strip-native-commands --strip-debug --no-man-pages --no-header-files --bind-services"

Fixed:
- Add validation checks for ICC_Profile header fields
- print/Dialog/PaperSizeError.java fails with MediaSizeName is not A4: A4
- [ubsan] exclude function BilinearInterp and ShapeSINextSpan in libawt java2d from ubsan checks
- Update HarfBuzz to 10.4.0
- Update FreeType to 2.13.3
- Update PipeWire to 1.3.81
- Update Libpng to 1.6.47
- Build splashscreen lib with SIZE optimization
- [XWayland] No displayChanged event after setDisplayMode call
- [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS
- [Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
- [Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
- SNI not sent with Java 22+ using java.net.http.HttpClient.Builder#sslParameters
- [ASAN] avx2-emu-funcs.hpp:151:20: error: ‘D.82188’ is used uninitialized
- Increased number of SHA-384-Digest java.util.jar.Attributes$Name instances leading to higher memory footprint
- ISO 4217 Amendment 179 Update
- assert(false) failed: EA: missing memory path
- Update the default value of CodeEntryAlignment for Ampere-1A and 1B
- assert(n->is_Mem()) failed: memory node required
- Unexpected NullPointerException in C2 compiled code due to ReduceAllocationMerges
- Integer.numberOfLeadingZeros outputs incorrectly in certain cases
- "Total compile time" counter should include time spent in failing/bailout compiles
- Caller/callee param size mismatch in deoptimization causes crash
- AArch64: turn on signum intrinsics by default on Ampere CPUs
- [Redo] G1: Pinned regions with pinned objects only reachable by native code crash VM
- G1: NUMA migrations cause crashes in region allocation
- Incorrect WINDOWS ifdef in os::build_agent_function_name
- Include timings for leaving safepoint in safepoint logging
- Out of bounds access on Linux aarch64 in os::print_register_info
- Cgroup v1 subsystem fails to set subsystem path
- [ubsan] adjustments to filemap.cpp and virtualspace.cpp for macOS aarch64
- Adjust exception No type named in database
- Introduce the concept of upgradeable files in context of JEP 493
- Only every second line in upgradeable files is being used