Le distribuzioni del Java Development Kit (JDK), o le distribuzioni del Java Runtime Environment (JRE), forniscono le risorse e i processi necessari per eseguire applicazioni Java su un sistema operativo sottostante. Questi elementi includono tutte le classi Java SE (Standard Edition) richieste e gli ambienti di esecuzione del codice. Le distribuzioni JDK / JRE includono anche una Java Virtual Machine (JVM) che consente la portabilità multipiattaforma di Java e permette al codice compilato di Java di essere più piccolo in dimensioni. Java è un linguaggio di programmazione popolare, e il JDK / JRE può essere considerato come uno strato di comunicazione tra i programmi Java scritti e i sistemi operativi. Tutte le distribuzioni del JDK derivano da OpenJDK, l'implementazione open-source di Java SE che è sviluppata e mantenuta collettivamente dai principali fornitori in questo settore.
I team di sviluppo utilizzano la distribuzione del JDK scelta per accedere alle classi (codice pre-scritto con funzionalità che possono essere richiamate tramite comandi abbreviati), per scrivere codice Java e sviluppare applicazioni, per verificare e convalidare il loro codice scritto, inclusa la correzione di errori e la sicurezza, e per eseguire il loro codice come un'applicazione. Affinché le distribuzioni JDK o JRE siano considerate compatibili con Java SE, devono superare la suite di test del technology compatibility kit (TCK). Il Java TCK, noto anche come JCK, è reso disponibile attraverso l'OpenJDK Community TCK License Agreement (OCTLA) alle organizzazioni che lavorano e contribuiscono alla comunità OpenJDK. Inoltre, alcune distribuzioni (spesso chiamate distribuzioni "downstream") offrono benefici altamente differenziati come esperienze applicative significativamente migliorate e costi infrastrutturali ridotti. Questi possono includere prestazioni migliorate (migliore garbage collection, avvio più rapido, ecc.) e capacità cloud native.
Per qualificarsi per l'inclusione nella categoria delle Distribuzioni del Java Development Kit (JDK), un prodotto deve:
Includere una Java Virtual Machine (JVM)
Includere l'API Java SE (application programming interface) - un insieme di classi interne per costruire applicazioni Java
Fornire i pacchetti e gli strumenti per sviluppare, testare e monitorare applicazioni Java