引用
前言
需要一个主机端(Server端)正在运行的程序,且添加了如下的VM参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999
其中9999是端口用来被客户端连接。
需要一个客户端(remote端,连接Server端,且添加了如下的参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999
示例
Java Main(Server端)
-
代码
public class JavaMain { public static void main(String[] args) { int i = 0; while (true) { i++; if (i % 2 == 0) { System.out.println(i); } else { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
-
添加 VM 参数
-
以 java -jar 的方式运行(实际生产上会这样运行,java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999 xxx.jar)
Debugger端
- 配置好Debug参数
- 运行后可打断点,就像正常Debug那样
PS
如果帮助到你的话,点个赞鼓励下,欢迎加入我的置顶博客的javaweb交流群,不搞带课推广,让我们一起向诗靠拢。