-
Sub-task
-
Resolution: Delivered
-
P4
-
9
-
Verified
The JDK and JRE run-time images have been restructured as documented in [JEP 220](http://openjdk.java.net/jeps/220). The compatibility issues due to the changes are documented in the "Risks and Assumptions" section of the JEP and also summarized here.
- Tools and libraries that rely on the existence of the `jre` directory, `rt.jar`, or `tools.jar` may need to be updated to work with the new layout and/or may need to be updated to use the `jrt` file system provider to access class files and other resources in the runtime image.
- All user-editable configuration files are now located in the JDK/JRE `conf` directory. This includes the security policy file and other properties files. Scripts or procedures that rely on the old location of these files may need to be updated.
- On Linux and Solaris, `libjvm.so` is now located in the JDK/JRE `lib` directory (it was located in `lib/$ARCH` in previous releases). Applications that use the JNI invocation API to create the VM may need to be updated to locate `libjvm.so` in its new location.
- `src.zip` has moved from the top-level directory to the `lib` directory and now includes both the JDK and JavaFX source files in module directories. IDEs or tools that open this zip file may need to be updated.
- The deprecated Endorsed-Standards Override Mechanism has been removed in this release. The runtime will refuse to start if `${java.home}/lib/endorsed` exists or the system property `java.endorsed.dirs` is specified on the command line. The `javac` compiler will only accept the `-endorseddirs` option when compiling to JDK 8 or older. Applications that rely on this mechanism should migrate to the upgradeable modules mechanism, documented in [JEP 261](http://openjdk.java.net/jeps/261).
- The deprecated Extensions Mechanism has been removed. The runtime will refuse to start if `${java.home}/lib/ext` exists or the system property `java.ext.dirs` is specified on the command line. The `javac` compiler will only accept the `-extdirs` option when compiling to JDK 8 or older. The `rmic` compiler will no longer accept the `-extdirs` options. Applications that rely on this mechanism should consider deploying the libraries on the class path or as modules on the module path.
- Tools and libraries that rely on the existence of the `jre` directory, `rt.jar`, or `tools.jar` may need to be updated to work with the new layout and/or may need to be updated to use the `jrt` file system provider to access class files and other resources in the runtime image.
- All user-editable configuration files are now located in the JDK/JRE `conf` directory. This includes the security policy file and other properties files. Scripts or procedures that rely on the old location of these files may need to be updated.
- On Linux and Solaris, `libjvm.so` is now located in the JDK/JRE `lib` directory (it was located in `lib/$ARCH` in previous releases). Applications that use the JNI invocation API to create the VM may need to be updated to locate `libjvm.so` in its new location.
- `src.zip` has moved from the top-level directory to the `lib` directory and now includes both the JDK and JavaFX source files in module directories. IDEs or tools that open this zip file may need to be updated.
- The deprecated Endorsed-Standards Override Mechanism has been removed in this release. The runtime will refuse to start if `${java.home}/lib/endorsed` exists or the system property `java.endorsed.dirs` is specified on the command line. The `javac` compiler will only accept the `-endorseddirs` option when compiling to JDK 8 or older. Applications that rely on this mechanism should migrate to the upgradeable modules mechanism, documented in [JEP 261](http://openjdk.java.net/jeps/261).
- The deprecated Extensions Mechanism has been removed. The runtime will refuse to start if `${java.home}/lib/ext` exists or the system property `java.ext.dirs` is specified on the command line. The `javac` compiler will only accept the `-extdirs` option when compiling to JDK 8 or older. The `rmic` compiler will no longer accept the `-extdirs` options. Applications that rely on this mechanism should consider deploying the libraries on the class path or as modules on the module path.