Example of a multi-release Jar files contents
suggest changeBy setting Multi-Release: true
in the MANIFEST.MF file, the Jar file becomes a multi-release Jar and the Java runtime (as long as it supports the MRJAR format) will pick the appropriate versions of classes depending on the current major version.
The structure of such a Jar is the following:
jar root
- A.class
- B.class
- C.class
- D.class
- META-INF
- versions
- 9
- A.class
- B.class
- 10
- A.class
- On JDKs < 9, only the classes in the root entry are visible to the Java runtime.
- On a JDK 9, the classes A and B will be loaded from the directory
root/META-INF/versions/9
, while C and D will be loaded from the base entry. - On a JDK 10, class A would be loaded from the directory
root/META-INF/versions/10
.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents