Quark.jar
Unlocking Java Optimization: The Complete Guide to quark.jar
In the vast ecosystem of Java development, optimization tools often fly under the radar. One such hidden gem is quark.jar. While not a household name like javac or maven, this specialized JAR file has garnered a cult following among performance engineers, security analysts, and reverse engineers.
Key Insight: When you run java -jar quark.jar, the bootstrapper inside reads the lib/ and app/ folders relative to its position. This separation allows for incremental updates in containerized environments. For example, if you only change your business logic, you only need to replace the app/ folder, not the entire 50 MB JAR. quark.jar
quarkus-app/quark-run.jar (The quark.jar file): This is a tiny bootstrapper (~100 KB). It contains the public static void main(String[] args) class and the logic to set up the correct classloader hierarchy. It reads the other folders and starts the application. Unlocking Java Optimization: The Complete Guide to quark
Native Mode vs. quark.jar (JVM Mode)
A common source of confusion is the relationship between quark.jar and GraalVM Native Images. Here is the clear distinction: Enable logging via SLF4J/logback; check whether quark
- Enable logging via SLF4J/logback; check whether quark.jar emits logs at configurable levels.
- Expose metrics: if it supports Micrometer/Prometheus, wire metrics into your monitoring.
- Health checks: provide readiness/liveness probes if used in containerized apps.
- Heap/thread dumps for diagnosing leaks or deadlocks.