Update the java build to detect what the compatibility level of the class files should be
The build system has a hardwired java class level that is set to build the .class files as. This should be dynamically determined by the build system. It worked in the past when the JDK did not have as many release, but the release pace has increased and the class levels become deprecated much faster now. It becomes a potentially frequent event to have a jdk that is newer than can be built as old jdk releases are no longer generally available.