JvmBridge.Tool 26.10.23.4023

dotnet tool install --global JvmBridge.Tool --version 26.10.23.4023
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local JvmBridge.Tool --version 26.10.23.4023
                    
This package contains a .NET tool you can call from the shell/command line.
#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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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)