何為遠(yuǎn)程調(diào)試?我們一般調(diào)試一個(gè)web項(xiàng)目的java代碼時(shí),需要將你的tomcat服務(wù)器和你的開(kāi)發(fā)工具(比如Jbuilder)集成,或需要工具的一些插件支持(比如Eclipse下的myclipse等),這些方式都是在本地進(jìn)行,即你的開(kāi)發(fā)工具和tomcat運(yùn)行在同一臺(tái)服務(wù)器上,如果你的開(kāi)發(fā)工具和服務(wù)器不再一臺(tái)機(jī)器上那就需要實(shí)現(xiàn)遠(yuǎn)程調(diào)試功能了。
實(shí)現(xiàn)方法:
在tomcat的catalina.bat文件中加入下面的設(shè)置,當(dāng)然SET CATALINA_OPTS 變量應(yīng)該在使用它之前。這是在tomcat啟動(dòng)時(shí)設(shè)置一些虛擬機(jī)參數(shù),使服務(wù)器允許遠(yuǎn)程連接功能,address=5888表示遠(yuǎn)程連接的端口號(hào),可以設(shè)置成任意其他不沖突端口。其他的應(yīng)用服務(wù)器比如weblogic也應(yīng)該可以設(shè)置這些參數(shù),有興趣的可以測(cè)試。
SET?CATALINA_OPTS
=
-server?-Xdebug?-Xnoagent?-Djava.compiler
=
NONE?-Xrunjdwp:transport
=
dt_socket
,
server
=
y
,
suspend
=
n
,
address
=
5888
?
這樣就Ok了,重啟動(dòng)tomcat,可以直接獨(dú)立啟動(dòng),而不用在eclipes的插件中啟動(dòng)。打開(kāi)eclipse中的debug設(shè)置窗口,選擇Remote Java Application ,新建一個(gè)debug項(xiàng),輸入服務(wù)器IP和剛才設(shè)置端口號(hào),點(diǎn)ok就可以進(jìn)入debug狀態(tài)了。Jbuilder中同樣可以設(shè)置Remote Java Application。
?
?
另有Javaeyes論壇的一片文章如下
?
ibm論壇的原始文章如下
?
用以參考~
?
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xnoagent"/>
<jvmarg value="-Djava.compiler=none"/>
<jvmarg value-Xrunjdwp:transport=dt_socket,server=y,address=4000,suspend=n"/>
?
另外(version 4.1.29):
我手工將catalina.bat中
set JPDA=
修改為
set JPDA=jpda
set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=XXXX
然后在eclipse里面創(chuàng)建一個(gè)remote java application ,將port設(shè)置為XXXX的值,也可。
因?yàn)檎{(diào)試的啟用,無(wú)非設(shè)置transport屬性允許遠(yuǎn)程連接并且指定一個(gè)端口號(hào)而已,指定之后在eclipse里面對(duì)應(yīng)的配置該端口號(hào)即可。