Using a specific version of javac

There is a class of Java errors that occur when your javac version doesn’t match your java VM version, for example:

https://bugs.openjdk.java.net/browse/JDK-8003188?jql=text%20~%20"field%20name%26signature"

Because of this, it is critical that we be able to specify the exact version of java that is used to build the project.

This is a really critical problem with CircleCI. Anyone who is using Java 8 lambdas and is running the most recent version of Java on their production instances is vulnerable. The result is that the JAR that is built by CircleCI works on CircleCI, then crashes on production.