`
skzr.org
  • 浏览: 354860 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Eclipse远程调试Java

    博客分类:
  • J2EE
阅读更多

以下谈论的是Applet的远程调试技术,实际上对于其他java程序一样适用,只需要使用文中参数启动java程序即可

Java远程调试方式,两种方式进行远程调试

上面的表示是Eclipse配置为Socket Listen方式,下面的是Socket Attach方式

对于远程程序上图表示主动链接调试器,下图表示远程程序正常运行 允许调试器连接jvm

Eclipse配置: 菜单(Eclipse):Run-->Debug Configurations打开调试配置面板,如图配置

左侧新建一个远程调试

左侧Project:源代码工程

左侧Connection Type:调试方式

侧Connection Properties:配置与Connection Type相关的调试连接属性

 

 

Standard(Socket Attach)方式调试:

左侧Connection Type:Standard(Socket Attach)

左侧Connection Properties:

host:192.168.228.7 (远程java主机ip)

Port: 9998 (远程java配置的调试端口)

远程java程序配置
/prog/java/jdk/bin/jcontrol
#window系统在(控制面板->其他程序->java)打开"Java Control Panel"配置对话框
#在打开远程java主机的"Java Control Panel"配置对话框 进行配置
#-Xdebug -Xrunjdwp:transport=dt_socket,address=9998,server=y,suspend=n
#如图

先启动远程java程序 然后 启动Eclipse远程调试,现在可以正常调试系统了

缺点 :只有java程序启动后才能进行调试,无法调试java程序的启动过程,如果要全程调试需要使用下面的方式

优点 :可以随时连接到远程java程序进行调试,没尝试过多机同时调试一个远程java 

Standard(Socket Listen)方式调试:

左侧Connection Type:Standard(Socket Listen)

左侧Connection Properties:配置Port为9999

远程java程序配置

/prog/java/jdk/bin/jcontrol
#window系统在(控制面板->其他程序->java)打开"Java Control Panel"配置对话框
#在打开远程java主机的"Java Control Panel"配置对话框 进行配置
#-agentlib:jdwp=transport=dt_socket,suspend=y,address=192.168.228.7:9999
#address:Eclipse程序所在的主机的IP和调试端口
#如图

先启动Eclipse远程调试,然后启动远程java程序 现在可以正常调试系统了

缺点 :不能随时连接到远程java程序进行调试

优点 :可以调试java程序启动过程

  • 大小: 55.1 KB
  • 大小: 118 KB
  • 大小: 62.9 KB
  • 大小: 57.3 KB
12
0
分享到:
评论
9 楼 skzr.org 2010-12-23  
昨天使用这个Socket Attach的形式调试了下tomcat服务器上的web
一切OK
8 楼 skzr.org 2010-12-14  
wu_quanyin 写道
启动过程可以调试,.....

还有远程有一个优点,,那就是假设断点很多的话,,又想重新返回调,可以先去掉连接,,再重新连,,不用f8狂按...


其实远程,和本地调试本质上无差别,你可以直接写一个main,然后调试,再看看那个调试里面的属性,就会发现其实是使用的Standard(Socket Listen)方式调试的,
好像使用这个模式,如果调试器没有启动,你的main也执行不起来的:)

至于要f8狂按,可以解决,就是把断电disable,而不是删除即可
7 楼 wu_quanyin 2010-12-14  
启动过程可以调试,.....

还有远程有一个优点,,那就是假设断点很多的话,,又想重新返回调,可以先去掉连接,,再重新连,,不用f8狂按...
6 楼 skzr.org 2010-12-13  
一下子没有注意,这个帖子访问量竟然过K了,第一次啊
激动

看来对于经验分享贴大家还是很有兴趣的,以后多发一点!

5 楼 skzr.org 2010-12-13  
dhj1986 写道
我也没搞明白这个有什么用,怎么debug,难道在程序上打上断点,如果没有可视化环境怎么一步一步跟踪程序

兄弟,如果有这样远程的调试需求,可以尝试一次,尝试一次就知道了

最简单的场景,平时咱们用myeclipse的tomcat调试模式时觉得很爽吧

其实使用文中的办法,没有myeclipse一样可以调试tomcat下的web程序
4 楼 dhj1986 2010-12-12  
我也没搞明白这个有什么用,怎么debug,难道在程序上打上断点,如果没有可视化环境怎么一步一步跟踪程序
3 楼 skzr.org 2010-12-10  
dajian 写道
要DEBUG生产,测试部环境相当有用~~

:-)
有些东西还没有研究透,可以使用oracle的jrmc或者java自带的简单工具查看jvm内存 cpu等使用情况

此文的意义,确实只是为了debug,特别是调试远程java非常有用
2 楼 dajian 2010-12-10  
要DEBUG生产,测试部环境相当有用~~

1 楼 skzr.org 2010-12-09  
Eric.D.Chen 写道
这个有啥用?

如果你要调试另外一个机器上的java程序运行,时就有用了

相关推荐

Global site tag (gtag.js) - Google Analytics