<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v" -->

---
title: Patch Java classes at build time with Quarkus Shim
description: Quarkus Shim is a Quarkus extension that lets you patch Java classes from third-party libraries at build time without Java agents or runtime instrumentation....
canonical: https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Patch Java classes at build time with Quarkus Shim | daily.dev
og:description: Quarkus Shim is a Quarkus extension that lets you patch Java classes from third-party libraries at build time without Java agents or runtime instrumentation....
og:url: https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v
og:image: https://api.daily.dev/og/posts/Dlxn5NS4V.png
og:image:alt: Patch Java classes at build time with Quarkus Shim
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Patch Java classes at build time with Quarkus Shim

**[Quarkus](https://daily.dev/sources/quarkus)** · 4 min read · 2 upvotes · 0 comments

## Summary

Quarkus Shim is a Quarkus extension that lets you patch Java classes from third-party libraries at build time without Java agents or runtime instrumentation. Using annotations like @Shim, @ShimReplace, @ShimAround, @ShimBefore, and @ShimAfter, you can replace method bodies, wrap existing behavior, or inject code before/after method execution. The transformation uses ASM during Quarkus augmentation, works across JVM, dev, and native modes, and validates signatures at build time. It also supports accessing private fields and methods via ShimFields and ShimMethods helpers, and handles overloaded methods via paramTypes. Limitations include inability to patch JDK classes or abstract/native methods.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://quarkus.io/blog/quarkus-shim>

## Similar posts on daily.dev

- [Quarkus - a component testing update](https://daily.dev/posts/quarkus---a-component-testing-update-weaukgxrs) · Quarkus · 1 upvotes · 0 comments
- [Faster Startup on IBM Semeru with OpenJ9 Shared Classes Cache](https://daily.dev/posts/faster-startup-on-ibm-semeru-with-openj9-shared-classes-cache-nfs5weqbl) · Quarkus · 1 upvotes · 0 comments
- [Quarkus: A Runtime and Framework for Cloud-Native Java](https://daily.dev/posts/quarkus-a-runtime-and-framework-for-cloud-native-java-guuchh19i) · Quarkus · 1 upvotes · 0 comments

---

Tags: [#java](https://daily.dev/tags/java), [#quarkus](https://daily.dev/tags/quarkus)

[View this post on daily.dev](https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Patch Java classes at build time with Quarkus Shim","url":"https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v"},"datePublished":"2026-07-17T02:21:33.749Z","dateModified":"2026-07-17T02:21:54.938Z","description":"Quarkus Shim is a Quarkus extension that lets you patch Java classes from third-party libraries at build time without Java agents or runtime instrumentation....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e7ab97eced21a845aaca4e155a5e5171?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e7ab97eced21a845aaca4e155a5e5171?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Quarkus","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Quarkus","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/8adf82d719bb4a9492f44a28a27fd396","url":"https://daily.dev/sources/quarkus"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/patch-java-classes-at-build-time-with-quarkus-shim-dlxn5ns4v","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"java,quarkus","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Quarkus","item":"https://daily.dev/sources/quarkus"},{"@type":"ListItem","position":3,"name":"Patch Java classes at build time with Quarkus Shim"}]}
```

