通州北大青鳥java技術(shù)講座之:遠(yuǎn)程調(diào)試

本篇技術(shù)文章中,通州北大青鳥Java技術(shù)教員將給大家介紹一下如何開啟遠(yuǎn)程調(diào)試。如果需要開啟Java虛擬機(jī)的遠(yuǎn)程調(diào)試,需要在JVM的啟動(dòng)參數(shù)中加入。下面為XML代碼:

-Xdebug -Xrunjdwp:transport=dt_socket, address=8000,server=y,suspend=y 
各個(gè)參數(shù)意義如下:
-Xdebug:?jiǎn)⒂谜{(diào)試特性 
-Xrunjdwp:?jiǎn)⒂肑DWP實(shí)現(xiàn),它包含若干子選項(xiàng): 
transport=dt_socket:表示使用套接字傳輸。 
address=8000:JVM在8000端口上監(jiān)聽請(qǐng)求。 
server=y:y表示啟動(dòng)的JVM是被調(diào)試者。如果為n,則表示啟動(dòng)的JVM是調(diào)試器。 
suspend=y:y表示啟動(dòng)的JVM會(huì)暫停等待,直到調(diào)試器連接上。

那么我們?nèi)绾卧趖omcat上加入遠(yuǎn)程調(diào)試(以apache-tomcat-6.0.37版本為例)?通州北大青鳥介紹:
將startup.sh中的XML代碼:
exec "$PRGDIR"/"$EXECUTABLE" start "$@"  修改成:
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@" 即可。
因?yàn)樵赾atalina.sh中會(huì)判斷是否開啟遠(yuǎn)程調(diào)試,而且各個(gè)參數(shù)均有默認(rèn)值,如下所示:
    if [ "$1" = "jpda" ] ; then 
      if [ -z "$JPDA_TRANSPORT" ]; then 
        JPDA_TRANSPORT="dt_socket" 
      fi 
      if [ -z "$JPDA_ADDRESS" ]; then 
        JPDA_ADDRESS="8000" 
      fi 
      if [ -z "$JPDA_SUSPEND" ]; then 
        JPDA_SUSPEND="n" 
      fi 
      if [ -z "$JPDA_OPTS" ]; then 
        JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND" 
      fi 
      CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS" 
      shift 
    fi
默認(rèn)tomcat啟動(dòng)時(shí)不掛起,不會(huì)等待調(diào)試器連接上,這也是我們最常用的的模式。(通州北大青鳥分享)

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡(jiǎn)章