# jdwp **Repository Path**: mirrors_node-modules/jdwp ## Basic Information - **Project Name**: jdwp - **Description**: Java Debug Wire Protocol - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-19 - **Last Updated**: 2025-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jdwp Java Debug Wire Protocol [![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Test coverage][codecov-image]][codecov-url] [![David deps][david-image]][david-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [![npm download][download-image]][download-url] [npm-image]: https://img.shields.io/npm/v/jdwp.svg?style=flat-square [npm-url]: https://npmjs.org/package/jdwp [travis-image]: https://img.shields.io/travis/node-modules/jdwp.svg?style=flat-square [travis-url]: https://travis-ci.org/node-modules/jdwp [codecov-image]: https://codecov.io/gh/node-modules/jdwp/branch/master/graph/badge.svg [codecov-url]: https://codecov.io/gh/node-modules/jdwp [david-image]: https://img.shields.io/david/node-modules/jdwp.svg?style=flat-square [david-url]: https://david-dm.org/node-modules/jdwp [snyk-image]: https://snyk.io/test/npm/jdwp/badge.svg?style=flat-square [snyk-url]: https://snyk.io/test/npm/jdwp [download-image]: https://img.shields.io/npm/dm/jdwp.svg?style=flat-square [download-url]: https://npmjs.org/package/jdwp ## Install ```bash $ npm i jdwp --save ``` ## Usage launch the java project and connect to jvm ```js const { launcher } = require('jdwp') const vm = await launcher.launch({ mainClass: 'Test', vmArgs: [ '-Dfile.encoding=UTF-8', '-Xdebug', '-Xnoagent', '-Djava.compiler=NONE' ], classPaths: [ __dirname ], }); vm.on('event', async ({ events }) => { console.log(events); }); await vm.ready(); await vm.resume(); ``` run the [example](./example/index.js) demo ```bash $ node example/index.js Begin debug Test.java ----------------------- 1 public class Test { 2 public int plus(int a, int b) { 3 int c = a + b; 4 return c; 5 } 6 7 public static void main(String[] args) { 8 Test test = new Test(); 9 int c = test.plus(1, 2); 10 System.out.println(c); 11 System.out.println("Hello world"); 12 } 13 } 14 ----------------------- suspend at breakpoint line:10 get local variable c = 3 set local variable c = 4 4 step => Test main() line:11 Test/Test.java Hello world step => Test main() line:12 Test/Test.java step => java.lang.Thread exit() line:757 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:758 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:759 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:762 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:764 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:765 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:766 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:767 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:768 java/lang/Thread/Thread.java step => java.lang.Thread exit() line:769 java/lang/Thread/Thread.java ``` ## Protocol https://docs.oracle.com/javase/7/docs/platform/jpda/jdwp/jdwp-protocol.html - VirtualMachine Command Set (1) - [x] Version (1) - [x] ClassesBySignature (2) - [x] AllClasses (3) - [x] AllThreads (4) - [x] TopLevelThreadGroups (5) - [x] Dispose (6) - [x] IDSizes (7) - [x] Suspend (8) - [x] Resume (9) - [x] Exit (10) - [x] CreateString (11) - [x] Capabilities (12) - [x] ClassPaths (13) - [ ] DisposeObjects (14) - [x] HoldEvents (15) - [x] ReleaseEvents (16) - [x] CapabilitiesNew (17) - [x] RedefineClasses (18) - [x] SetDefaultStratum (19) - [x] AllClassesWithGeneric (20) - [x] InstanceCounts (21) - ReferenceType Command Set (2) - [x] Signature (1) - [x] ClassLoader (2) - [x] Modifiers (3) - [x] Fields (4) - [x] Methods (5) - [x] GetValues (6) - [x] SourceFile (7) - [x] NestedTypes (8) - [x] Status (9) - [x] Interfaces (10) - [x] ClassObject (11) - [x] SourceDebugExtension (12) - [x] SignatureWithGeneric (13) - [x] FieldsWithGeneric (14) - [x] MethodsWithGeneric (15) - [x] Instances (16) - [x] ClassFileVersion (17) - [x] ConstantPool (18) - ClassType Command Set (3) - [x] Superclass (1) - [x] SetValues (2) - [x] InvokeMethod (3) - [x] NewInstance (4) - ArrayType Command Set (4) - [x] NewInstance (1) - InterfaceType Command Set (5) - Method Command Set (6) - [x] LineTable (1) - [x] VariableTable (2) - [x] Bytecodes (3) - [x] IsObsolete (4) - [x] VariableTableWithGeneric (5) - Field Command Set (8) - ObjectReference Command Set (9) - [x] ReferenceType (1) - [x] GetValues (2) - [x] SetValues (3) - [x] MonitorInfo (5) - [x] InvokeMethod (6) - [x] DisableCollection (7) - [x] EnableCollection (8) - [x] IsCollected (9) - [x] ReferringObjects (10) - StringReference Command Set (10) - [x] Value (1) - ThreadReference Command Set (11) - [x] Name (1) - [x] Suspend (2) - [x] Resume (3) - [x] Status (4) - [x] ThreadGroup (5) - [x] Frames (6) - [x] FrameCount (7) - [ ] OwnedMonitors (8) - [ ] CurrentContendedMonitor (9) - [x] Stop (10) - [x] Interrupt (11) - [x] SuspendCount (12) - [ ] OwnedMonitorsStackDepthInfo (13) - [x] ForceEarlyReturn (14) - ThreadGroupReference Command Set (12) - [x] Name (1) - [x] Parent (2) - [x] Children (3) - ArrayReference Command Set (13) - [x] Length (1) - [x] GetValues (2) - [x] SetValues (3) - ClassLoaderReference Command Set (14) - [x] VisibleClasses (1) - EventRequest Command Set (15) - [x] Set (1) - [x] Clear (2) - [x] ClearAllBreakpoints (3) - StackFrame Command Set (16) - [x] GetValues (1) - [x] SetValues (2) - [x] ThisObject (3) - [x] PopFrames (4) - ClassObjectReference Command Set (17) - [x] ReflectedType (1) - Event Command Set (64) - [x] Composite (100)