> Please review this change ensuring all targeted classes in a MR-JAR file > should target the same or a lower classfile version. The [JAR File > Specification](https://docs.oracle.com/javase/9/docs/specs/jar/jar.html#Multi-release) > of JavaSE 9 reads: > >> A class file under a versioned directory, of version N say, in a >> multi-release JAR must have a class file version less than or equal to the >> class file version associated with Nth major version of a Java platform >> release. > > For example, having compiled source files with `javac` 25 without using the > `--release` option (or with `--release 25`) and trying to archive them via a > `jar --create --file a.jar --release 9 ... --release 10 ...` command now > fails with: > > classfile release value of META-INF/versions/9/version/Version.class too > high: 25 > classfile release value of META-INF/versions/10/version/Version.class too > high: 25 > invalid multi-release jar file a.jar deleted > > > This pull request contains fixes to existing tests which produced invalid > MR-JAR files. Most of those fixes are achieved by adding an appropriate > `--release N` option to the associated `javac` call. One of those fixes > rewrites the classfile version bytes between the `javac` and `jar` calls.
Christian Stein has updated the pull request incrementally with one additional commit since the last revision: Improve error message as suggested ------------- Changes: - all: https://git.openjdk.org/jdk/pull/22103/files - new: https://git.openjdk.org/jdk/pull/22103/files/478ef59c..d889660c Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=22103&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22103&range=00-01 Stats: 33 lines in 5 files changed: 11 ins; 12 del; 10 mod Patch: https://git.openjdk.org/jdk/pull/22103.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22103/head:pull/22103 PR: https://git.openjdk.org/jdk/pull/22103