目錄
以下文章來源於微信公衆號:古古說 ,作者古古
如果你想要 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 了