IntelliJ IDEA 遠程調試 Tomcat
准備工作
- 明確遠程服務器的 IP 地址,比如我是:192.168.92.128
- 關掉服務器防火牆:
service iptables stop
本地 Remote Server 配置
- 添加 Remote Server,如下圖
- 復制 Remote Server 自動生成的 JVM 參數,等下有用,如下圖,比如我的是:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
- 如下圖,在 Host 添加服務器的 IP 地址:192.168.92.128。
- 把剛剛復制參數加個前綴,變成:
- 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
- Linux(有單引號):
服務器 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 參數,那你就把你的那部分參數和這部分參數合並在一起。
- 如下圖所示:
- 在該文件的最上面,添加我們剛剛復制的那句話:
服務器 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 &
- 就像這樣: