Since the JDK supplies the compiler for your Java programs, the JDK you use determines what Java version you are able to code in . For example, if you want to use the newer functional programming features found in Java 8 (like the arrow Lambda operator), then you need at least the Java 8 JDK for compiling.