目录
以下文章来源于微信公众号:古古说 ,作者古古
如果你想要 debug 某个运行在服务器上的 SpringBoot 或是 Spring 项目时,必须先配置好远程 debug,才能够在本地打断点,然后透过远程 debug 的设置传到服务器上,去对远端服务器上的应用进行 debug
1. 先运行服务器上的应用
如果是 SpringBoot 项目,需要在执行构建出来的 jar 档时,带上 jvm 启动参数
java -agentlib:jdwp=transport=dt_socket,address=18090,server=y,suspend=n -jar myservice-0.0.1-SNAPSHOT.jar
如果是传统的 Spring + tomcat war 档项目,则是在 tomcat/bin/catalina.sh
裡,加入 JAVA_OPTS 设定 jvm 启动参数
#!/bin/sh
JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,address=18090,server=y,suspend=n"
2. 在自己的电脑上开启 tunnel
如果自己的电脑是 Windows
先下载 putty,下载完成之后打开他,然后点选 Tunnels
在 Source port 填上本机的 port,这里填 1993,但你可以挑一个自己喜欢的端口
在 Destination上 填上服务器 ip 地址和 18090,其中 18090 要跟你刚刚在服务器上运行的参数 address 的值一样
填完之后按 Add,上面 Forwarded ports 就会出现你的设定值
接着按左边的 session 回到主页面,在 Host Name 填上服务器的 ip
最后再按右下角 Open 连线,就可以在 Windows 上开启 tunnel 了
如果自己的电脑是 Mac/Linux
Mac/Linux 开启 tunnel 的方式比较简单,只要运行以下指令就可以了
ssh -X -N -L 1993:your-server-ip:18090 your-server-ip
其中 18090 要跟你刚刚在服务器上运行的参数 address 的值一样,而那个 1993 则是本机的端口,你挑一个自己喜欢的就可以了
3. 配置 Intellij IDEA
首先先在 Intellij IDEA 上新增一个 Remote configuration
在 host 的地方填入 localhost
,而 port 的地方填入你刚刚开的那个本机端口,我刚刚在本机开的是 1993
端口,所以我这里就填 1993
,填好按 OK 保存
接着就可以运行刚刚设置好的 remote configuration 来进行远程 debug 了!
如果连线有成功,Intellij IDEA 下方会显示 Connected to the target VM...
,这时候就可以打断点来对服务器上的应用进行 debug 了