`
helloJ
  • 浏览: 163802 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

结合JDWP,利用MyEclipse远程调试web工程中的applet(java)程序

阅读更多

    最近在学习一些applet的相关应用,发现applet是在客户端运行,服务端的MyEclipse没办法直接调试,于是在网上搜罗相关的调试资料,发现资料挺多的,但都似有残缺,经过多方尝试,最后终于成功配置了适合web工程的调试,在此记录下配置过程,希望能对有类似需求的有所帮助。

 

1.环境:
客户端:已安装C:\Java\jre1.5.0_07,C:\Tomcat5.0\
            jre环境变量已配置好:classpat=.;C:\java\jre1.5.0_07\lib;
            操作系统为window xp
服务端:已安装D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA
            workplace:D:\MyEclipse\workspace
(备注:本人客户端和服务端是同一台机器)

 

2.在程序运行机器(客户端)上为Applet程序启动时自动开启JDWP服务:
      到控制面板,打开“java控制面板”,在随后弹出的“java控制面板”对话框中,选择“Java” Tab页,在“java小应用程序 Runtime 设置”中点击“查看”按钮,在弹出的“Java Runtime 设置”对话框中设置“Java Runtime 参数”为:
-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

 

3.修改客户端tomcat相关配置文件:
3.1 修改C:\Tomcat5.0\bin下的文件catalina.bat 找到 这段代码

 

if not ""%1"" == ""jpda"" goto noJpda
set JPDA=jpda
if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
set JPDA_TRANSPORT=dt_shmem
:gotJpdaTransport
if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=jdbconn
:gotJpdaAddress

 

修改红色部分

 

set JPDA_TRANSPORT=dt_socket
set JPDA_ADDRESS=8000

 

说明:dt_shmem表示本机;dt_socket表示远程调试
         8000 就是是第 2 步设置的 address 参数,server监听的调试端口

 

3.2 修改 C:\Tomcat5.0\bin 下的文件startup.bat 找到 这段代码

 

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

 

修改为

 

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

 

4. 服务端myeclipse设置调试环境
4.1 Run->Debug

 


4.2 在弹出的“debug”窗口中双击“Remote Java Appllication”,或点击鼠标右键新增 远程调试项,配置好后点击“close”,因为此时还debug不了

 

 

 

 

 


5.把“服务端”配置好要调试的web工程直接部署到“客户端”的tomcat或打成包放到tomcat中

6.“客户端”运行tomcat,运行web工程,“客户端”用ie访问web工程有applet的页面

7.“服务端”的 myeclipse 启动 print 调试

 


8.这时就可以在指定的项目print 的代码中设置断点来激活debug操作,当程序运行至断点处时将会停止下来进入debug

题外话:
print工程目录概览:

print
  |-src
    |-applets
  |-WebRoot
    |-applets
    |-WEB-INF
      |-classes
        |-applets

    在web工程中,applet是不能直接访问“WEB-INF/classes”目录下的类(WEB-INF文件夹安全性比较高,客户端无法访问),所以print/WebRoot目录下的jsp、html等页面文件只能设置引用print/WebRoot/下的类文件,如print/WebRoot/applets。
    在myeclipse的navigator perspective 透视图中,将MyEclipse自动编译好的类文件print/WebRoot/WEB-INF/classes/applets拷贝到print/WebRoot/applets中让页面文件引用。
    类文件放好后,打包或部署到“客户端”的tomcat中,运行tomcat发布工程,先“客户端”用ie访问页面,再“服务端”的MyEclipse启动远程调试,最后在print/src/applets/下的java文件设置断点,当程序运行至断点处时将会停止下来进入debug

2
0
分享到:
评论
1 楼 dalviker 2009-08-20  
好东西,谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics