⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 github.com/judasn/IntelliJ-IDEA-Tutorial/edit/master/remote-debugging.md 「judasn」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

准备工作

  • 明确远程服务器的 IP 地址,比如我是:192.168.92.128
  • 关掉服务器防火墙:service iptables stop

本地 Remote Server 配置

  • 添加 Remote Server,如下图
    • 本地 Tomcat 配置
  • 复制 Remote Server 自动生成的 JVM 参数,等下有用,如下图,比如我的是:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 如下图,在 Host 添加服务器的 IP 地址:192.168.92.128。
    • 本地 Tomcat 配置
  • 把刚刚复制参数加个前缀,变成:
    • Linux(有单引号):export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
    • Windows(没有单引号):set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

服务器 Tomcat 配置

  • 以 Linux 环境为例
  • Tomcat 安装在 /usr/program/tomcat7
  • Tomcat 的执行程序:/usr/program/tomcat7/bin/catalina.sh
  • 编辑 Tomcat 执行程序:vim /usr/program/tomcat7/bin/catalina.sh(Windows 是编辑:catalina.bat)
    • 在该文件的最上面,添加我们刚刚复制的那句话:export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
    • 如果你的项目有特殊 JVM 参数,那你就把你的那部分参数和这部分参数合并在一起。
    • 如下图所示:
    • 远程 Tomcat 配置

服务器 Jetty 配置

  • 同样是 Linux 环境
  • jetty 不像Tomcat那样需要安装,只要有jetty的jar包就可以启动我们想要启动的应用。
  • 在启动应用的时候加入之前上边我们copy的-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就可以了。
    • 就像这样:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &

开始调试

  • 启动服务器 Tomcat
  • 启动本地 Remote Server
  • 如果可以看到如下图效果,表示已经连接成功了,接下里就是跟往常一样,在本地代码上设置断点,然后你访问远程的地址,触发到该代码自动就会在本地停住。
    • 开始调试
  • 如下图,可以看到调试效果
    • 开始调试
文章目录
  1. 1. 准备工作
  2. 2. 本地 Remote Server 配置
  3. 3. 服务器 Tomcat 配置
  4. 4. 服务器 Jetty 配置
  5. 5. 开始调试