OpenJDK Terminology

Technology Compatibility Kit

September 10, 2020

The TCK (Technology Compatibility Kit) is the official Java SE test suite, originally developed by Sun Microsystems and now maintained by Oracle. Any JDK binary that claims to be "Java SE compatible" must pass the TCK for its target release.

The TCK contains tests across a wide range of areas: Java SE APIs, JIT compiler correctness, bytecode interpreter behaviour, the Java memory model (memory barriers, thread synchronisation, atomic access), garbage collectors, and more. As of Java 21, the test suite contains well over 150,000 individual tests — the count grows with every new Java version as new APIs and features are added. Running the full suite on a single machine takes hours to days.

The TCK can be partitioned so that a representative subset can be run on resource-constrained platforms (such as embedded targets) in a manageable time.

TCK Compliance

Any JRE/JDK binary must pass the TCK in its entirety to be labelled "Java SE compatible". It is not sufficient to test a representative binary; each individual binary must pass.

Below are major OpenJDK distributions and their TCK compliance status:

Distribution TCK Compliant?
Adoptium Temurin
Amazon Corretto
Azul Platform Prime
Azul Zulu
BellSoft Liberica
Microsoft Build of OpenJDK
Oracle JDK
Oracle OpenJDK builds
Red Hat builds of OpenJDK
SAP Machine

TCK Licence and Access

The TCK is Oracle intellectual property and is not open source. It is licensed to certain third parties under a separate agreement. Details on access conditions and current licensees are available at openjdk.org/groups/conformance/JckAccess/. An alternative open-source compatibility test suite, jtreg, is run in addition to the TCK by many distributors.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard