JvmBridge.Tool
26.10.23.4023
dotnet tool install --global JvmBridge.Tool --version 26.10.23.4023
dotnet new tool-manifest
dotnet tool install --local JvmBridge.Tool --version 26.10.23.4023
#tool dotnet:?package=JvmBridge.Tool&version=26.10.23.4023
nuke :add-package JvmBridge.Tool --version 26.10.23.4023
JvmBridge.Tool
The jvmbridge command, a .NET tool that ships next to the JvmBridge package.
dotnet tool install --global JvmBridge.Tool
jvmbridge dump
Disassembles a class in the style of javap -c, from a class file or from a jar:
jvmbridge dump Service.class --method handle
jvmbridge dump app.jar # lists the classes
jvmbridge dump app.jar --class com/acme/Service
jvmbridge patch --dry-run
Previews what the patches of an agent would do to class files, without a JVM. The tool runs the agent's Configure against an offline JVM, then applies the patches it registered to the classes you give it:
jvmbridge patch --dry-run --agent bin/Release/net10.0/MyAgent.dll --classes app.jar --disassemble
Only patches registered in Configure are visible; patches an agent registers later, and custom TransformClass overrides, are not previewed. Use a tool version at least as new as the JvmBridge package the agent was built with.
jvmbridge pack
Packs the published native libraries of an agent, and the jars of single platforms, into one jar that java -javaagent starts on any of its platforms:
jvmbridge pack -o agent.jar --agent linux-x64=publish/linux-x64/MyAgent.so --agent win-x64=publish/win-x64/MyAgent.dll
jvmbridge pack -o agent.jar --jar linux-x64/MyAgent.jar --jar linux-arm64/MyAgent.jar
java -javaagent:agent.jar=log=debug -jar app.jar
The jar carries a small launcher class that extracts the library of the running platform into a private directory under java.io.tmpdir and loads it; that directory must be writable. The agent then starts as if it had been attached to the running JVM, with the text after = as its options. A JVM that finds no library for its platform stops at startup with a message that names the platforms the jar has.
A project that builds with the JvmBridge package can write these jars without the tool: <JvmBridgeAgentJar>true</JvmBridgeAgentJar> makes dotnet publish write a one-platform jar beside the library, and the JvmBridgeMergeAgentJars target combines such jars.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.10.23.4023 | 86 | 10/23/2026 |
| 26.10.23.3501 | 86 | 10/23/2026 |
| 26.10.23.2995 | 87 | 10/23/2026 |
| 26.10.23.2515 | 85 | 10/23/2026 |
| 26.10.23.2374 | 89 | 10/23/2026 |
| 26.10.22.7463 | 91 | 10/22/2026 |
| 26.10.22.5110 | 87 | 10/22/2026 |
| 26.10.22.4562 | 86 | 10/22/2026 |
| 26.10.22.4199 | 96 | 10/22/2026 |
- feat(samples): ✨ used an invoker, conditions and target checks in the legacy agent (8cdc466)
- feat(testing): ✨ pinned Maven artifacts, patched whole jars and link-checked helpers (4b7219c)
- feat(patching): ✨ checked that helpers declare what patches call in them (b38d61f)
- feat(patching): ✨ applied patches on conditions over a method's code (e8beff2)
- feat(patching): ✨ added getters, setters and invokers for private members (8a0ab3c)