i was curious so i took the eclipse plugins dir:
427 jar files total tize is 483MB
i could get that to work nicely for compress 1.20 (that still uses the pack200 of java itself)
but for 1.21 that always fails for me..
i guess it somewhat related to the ASM that must be used to read that stuff
(at least thats there compile dependency) but that is very old
which should work even for the very latest java versions
i get loads of errors
java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 0
at org.objectweb.asm.ClassReader.readShort(ClassReader.java:3608)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:197)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:180)
at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
at org.apache.commons.compress.harmony.pack200.Pack200ClassReader.<init>(Pack200ClassReader.java:35)
at org.apache.commons.compress.harmony.pack200.Archive.addJarEntry(Archive.java:193)
at org.apache.commons.compress.harmony.pack200.Archive.splitIntoSegments(Archive.java:150)
at org.apache.commons.compress.harmony.pack200.Archive.doNormalPack(Archive.java:121)
at org.apache.commons.compress.harmony.pack200.Archive.pack(Archive.java:99)
at org.apache.commons.compress.harmony.pack200.Pack200PackerAdapter.pack(Pack200PackerAdapter.java:58)
at org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream.finish(Pack200CompressorOutputStream.java:136)
at org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream.close(Pack200CompressorOutputStream.java:118)
at main.Main.main(Main.java:58)
and
Exception in thread "main" java.lang.IncompatibleClassChangeError: class org.apache.commons.compress.harmony.pack200.Segment can not implement org.objectweb.asm.ClassVisitor, because it is not an interface (org.objectweb.asm.ClassVisitor is in unnamed module of loader 'app')
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.apache.commons.compress.harmony.pack200.Archive.doNormalPack(Archive.java:129)
at org.apache.commons.compress.harmony.pack200.Archive.pack(Archive.java:99)
at org.apache.commons.compress.harmony.pack200.Pack200PackerAdapter.pack(Pack200PackerAdapter.java:58)
at org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream.finish(Pack200CompressorOutputStream.java:136)
at org.apache.commons.compress.compressors.pack200.Pack200CompressorOutputStream.close(Pack200CompressorOutputStream.java:118)
at main.Main.main(Main.java:58)
so maybe i do something wrong
it even doesn't matter which java version i take (i tried java 11, 14 and 16)