在平常開發中,有時須要對遠程服務器上的應用進行遠程調試,對於tomcat,要進行遠程調試其實很簡單,只須要在啓動tomcat時開啓jpda服務便可。java
什麼是JPDA呢?tomcat
JPDA(Java Platform Debugger Architecture) 是 Java 平臺調試體系結構的縮寫,經過 JPDA 提供的 API,開發人員能夠方便靈活的搭建 Java 調試應用程序。JPDA 主要由三個部分組成:Java 虛擬機工具接口(JVMTI),Java 調試線協議(JDWP),以及 Java 調試接口(JDI)。而像Eclipse和IDEA這種開發工具提供的圖形界面的調試工具,其實就是實現了JDI。關於JPDA的詳細信息,能夠查看developerWorks上的系列文章——深刻Java調試體系服務器
tomcat使用以下方式進行啓動jpda:jvm
默認狀況下,遠程調試的默認端口爲8000,能夠經過JPDA_ADDRESS進行配置,指定自定義的端口,另外,還有兩個能夠配置的參數socket
能夠在catalina.sh中進行配置:jsp
或者經過JPDA_OPTS進行配置:工具
這樣啓動以後 ,就能夠經過Eclise或IDEA進行遠程調試了,IDEA具體如何進行遠程調試,請參考另外一篇文章。開發工具
網上有不少文章提供了另外一種開啓遠程調試功能的方式,即經過JAVA_OPTS指定相應的JPDA參數:spa
使用這種方式開啓遠程調試功能,在啓動時沒有什麼問題,也可以正常的進行遠程調試,可是在中止tomcat時:.net
會出現以下錯誤:
致使不能正常終止java進程,須要手動的kill掉,因此仍是應該使用前面的方式開啓遠程調試功能。