Can Java 8 code be compiled to run on Java 7 JVM?

Nicola Ambrosetti picture Nicola Ambrosetti · Apr 22, 2013 · Viewed 68.9k times · Source

Java 8 introduces important new language features such as lambda expressions.

Are these changes in the language accompanied by such significant changes in the compiled bytecode that would prevent it from being run on a Java 7 virtual machine without using some retrotranslator?

Answer

JesperE picture JesperE · Mar 18, 2014

No, using 1.8 features in your source code requires you to target a 1.8 VM. I just tried the new Java 8 release and tried compiling with -target 1.7 -source 1.8, and the compiler refuses:

$ javac Test -source 1.8 -target 1.7
javac: source release 1.8 requires target release 1.8