Several changes had to be made to the JDK to support the new multi-release JAR file format. These changes include the following:
- The URLClassLoader is JAR-based and was modified so that it can read class files from the specified version.
- The new module-based class loader, new to Java 9, was written so that it can read class files from the specified version.
- The java.util.jar.JarFile class was modified so that it selects the appropriate class version from the multi-release JAR files.
- The JAR URL scheme's protocol handler was modified so that it selects the appropriate class version from the multi-release JAR files.
- The Java Compiler, javac, was made to read identified versions of the class files. These version identifications ...