There are numerous examples of using FunctionalJava:

Release Notes

Release notes are available from the download page. Alternately you can use the index of release notes.


FunctionalJava uses the Retro Lambda project to backport Java 8 lambdas to Java 6 bytecode. This requires access to both JDK 6 and 8. The build system requires the environment variables JAVA6_HOME and JAVA8_HOME to refer to the appropriate directories.

Building is done using Gradle. In the root directory run:


This will download the Gradle build tool and necessary dependencies and build FunctionalJava.


Functional Java is licensed under the BSD 3 license, available at (3-clause license,