Relates :
|
|
Relates :
|
|
Relates :
|
The attached jar files have valid manifests: multirelease-0.8-SNAPSHOT_failure.jar ----------------------------------------------------- Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven 3.3.9 Built-By: scholterf Build-Jdk: 9-ea Multi-Release: true multirelease-0.8-SNAPSHOT_success.jar -------------------------------------------------------- Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven 3.4.0-SNAPSHOT Built-By: scholterf Build-Jdk: 9-ea Multi-Release: true Yet, JarFile thinks the "failure" jar does not have the "Multi-Release: true" attribute, demonstrated by jshell> /op script multirelease-0.8-SNAPSHOT_success.jar is multi-release? true multirelease-0.8-SNAPSHOT_failure.jar is multi-release? false jshell> /li 1 : import java.util.jar.*; 2 : File f = new File("multirelease-0.8-SNAPSHOT_success.jar"); 3 : JarFile jf = new JarFile(f, false, 1, JarFile.runtimeVersion()); 4 : System.out.println(f + " is multi-release? " + jf.isMultiRelease()); 5 : f = new File("multirelease-0.8-SNAPSHOT_failure.jar"); 6 : jf = new JarFile(f, false, 1, JarFile.runtimeVersion()); 7 : System.out.println(f + " is multi-release? " + jf.isMultiRelease()); Further investigation shows that JarFile::match returns -1 for the "failure" jar.
|