JDK 8でビルドしたクラスファイルをJDK 7で実行するとClassNotFoundExceptionが発生する事象でハマったのでメモ。結論からいうと、ソースコードでJava 8に固有のクラスを直接参照していなくても、@Delegateによって間接的に参照されるケースがあります。 前提 JDK 8でのコンパイル時にsource, targetのバージョンを指定しているものとします。 そうしないと、JDK 7でクラスファイルを読み込んだ時に以下のエラーが発生します。 Exception in thread "main" java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 52.0 Gradleでは以下の2行を書くだけでOKです。 sourceCompatibility = JavaVe