Downgrade your target class files to Java 21 using --release 21 in javac . Problem 2: Squashing Breaks Reflection Symptoms: NoSuchMethodException after optimization.
java -jar quark.jar squash --allow-method "com.secret.Module#init*" --input app.jar If a method has over 500 bytecode instructions, flow may time out. Split the method manually or use: quark.jar
quark.jar may not be the most famous tool in the Java ecosystem, but for the discerning developer who values insight over blind optimization, it is indispensable. Download it today and look into your bytecode like never before. Have a tip or a bug report? Contribute to the Quark project on GitHub or check the official documentation. Downgrade your target class files to Java 21
| Feature | ProGuard | quark.jar | JProfiler | | :--- | :--- | :--- | :--- | | | Yes (aggressive) | Yes (conservative, safe) | No | | Bytecode visualization | No | Yes (unique) | No | | Runtime profiling | No | No | Yes | | JAR size reduction | Up to 90% | 15-40% | 0% | | Learning curve | Steep | Moderate | Moderate | Split the method manually or use: quark