diff --git a/patches/api/Enable-multi-release-plugin-jars.patch b/patches/api/Enable-multi-release-plugin-jars.patch index 97b4c61f4f..a9230e6211 100644 --- a/patches/api/Enable-multi-release-plugin-jars.patch +++ b/patches/api/Enable-multi-release-plugin-jars.patch @@ -13,18 +13,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 this.dataFolder = dataFolder; this.file = file; - this.jar = new JarFile(file); -+ // Paper - enable multi-release jars for Java 9+ -+ JarFile jarFile; -+ try { -+ final java.lang.reflect.Method runtimeVersionMethod = JarFile.class.getMethod("runtimeVersion"); -+ final Object runtimeVersion = runtimeVersionMethod.invoke(null); -+ @SuppressWarnings("JavaReflectionMemberAccess") final java.lang.reflect.Constructor constructor = JarFile.class.getConstructor(File.class, boolean.class, int.class, runtimeVersion.getClass()); -+ jarFile = constructor.newInstance(file, true, java.util.zip.ZipFile.OPEN_READ, runtimeVersion); -+ } catch (Exception ignored) { -+ jarFile = new JarFile(file); -+ } -+ this.jar = jarFile; -+ // Paper end ++ this.jar = new JarFile(file, true, java.util.zip.ZipFile.OPEN_READ, JarFile.runtimeVersion()); // Paper - enable multi-release jars for Java 9+ this.manifest = jar.getManifest(); this.url = file.toURI().toURL(); this.libraryLoader = libraryLoader;