首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。

JAVA的调试方法如下:

1。首先支持JVM,并设置参数,使之工作在DEBUG模式下,加入参数:-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java.io.IOException,launch=/sbin/echo

其中,-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台。

server参数是指是否支持在server模式的VM中.

onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。

launch指明,当JVM被中断下来时,执行的可执行程序。该参数可选

suspend指明,是否在调试客户端建立起来后,再执行JVM。

onuncaught(=y或n)指明出现uncaught exception 后,是否中断JVM的执行.

2。启动调试工具。

最简单的调试工具就是上面提到的JDB,以上述调试用JVM为例,可以用下面的命运行启动JDB:

jdb -connect com.sun.jdi.SocketAttach:port=5432,hostname=192.168.11.213

另外,还有好多的可视化调试工具,如 eclipse,jsawt等等。Eclipses可用 ant debug来建立一个调试方法。

其实就是使用了JDK的JPDA,在启动服务器(Jboss或者Tomcat等)的命令行参数里面加上:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

Java远程调试

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n

-XDebug               启用调试。

-Xnoagent             禁用默认sun.tools.debug调试器。

-Djava.compiler=NONE  禁止 JIT 编译器的加载。

-Xrunjdwp             加载JDWP的JPDA参考执行实例。

transport             用于在调试程序和 VM 使用的进程之间通讯。

dt_socket             套接字传输。

dt_shmem              共享内存传输,仅限于 Windows。

server=y/n            VM 是否需要作为调试服务器执行。

address=3999          调试服务器的端口号,客户端用来连接服务器的端口号。

suspend=y/n           是否在调试客户端建立连接之后启动 VM 。

Resin:

RESIN_HOME\bin\httpd.exe -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n

Tomcat:

在catalina.sh/bat 的最上面加上:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 即可。

Weblogic:

在startWebLogic.bat加上:set JAVA_OPTIONS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

启动App server后,在ide下通过debug remote java application并侦听相应的debug端口

Eclipse Rcp:

java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,suspend=y,server=y,address=8000 -cp F:/rcp/plugins/org.eclipse.equinox.launcher_1.0.0.v20070606.jar org.eclipse.equinox.launcher.Main -application rcp.application -data F:/rcp/workspace -os win32 -ws win32 -arch x86 -nl en_US

-Xdebug -Xnoagent等参数需要放在main class前面

java远程调试_JAVA的远程调试方法相关推荐

  1. java 连接远程桌面_Java实现远程桌面(参赛作品)

    [实例简介] 本人参赛作品,纯java实现多台电脑间的远程桌面连接. [实例截图] [核心代码] javaSE实现远程桌面 └── javaSE实现远程桌面 ├── 1.程序介绍 │   └── AI ...

  2. java的单步调试_java存储过程单步调试详解

    1.在要调试的过程上单击test,如下图所示: 2.出现如下界面时单击最左上方的按钮:,如下图所示: 3.单击后呈现如下画面: 其中: 表示要停止test; 表示要全部运行完这个过程.单击它后你就不能 ...

  3. java tostring 库_java重寫toString()方法

    toString()方法是Object類的方法,調用toString()會返回對象的描述信息. 1)為什么重寫toString()方法呢? 如果不重寫,直接調用Object類的toString()方法 ...

  4. java 二分查找_Java数组之Arrays方法

    Java数组之Arrays方法,拉勾IT课小编为大家分析,JAVA数组的一些方法,提升开发水平,增强技术开发水平,不断提升个人的技术能力,在对于java开发领域,很多人都从基础做起. 1. 数组的工具 ...

  5. java集合示例_Java集合的addAll()方法和示例

    集合类addAll()方法addAll()方法在java.lang包中可用. addAll()方法用于将所有给定元素(ele)放入给定集合(co). addAll()方法是一个静态方法,可以使用类名进 ...

  6. java parsefloat 误差_Java Float类parseFloat()方法与示例

    Float类parseFloat()方法parseFloat()方法在java.lang包中可用. parseFloat()方法用于返回与给定String表示形式相对应的float值,换句话说,我们可 ...

  7. java getmethod类_Java Class类 getMethod()方法及示例

    Class类getMethod()方法getMethod()方法在java.lang包中可用. getMethod()方法用于返回Method对象,这些对象指示该类的给定公共方法或由此Class对象表 ...

  8. java newinstance 包_Java Class类 newInstance()方法及示例

    Class类newInstance()方法newInstance()方法在java.lang包中可用. newInstance()方法用于创建此Class对象表示的类的新实例. newInstance ...

  9. java jmx 配置_Java JMX远程调优一点就通

    原标题:Java JMX远程调优一点就通 java远程调优可采用两种方式进行连接,jmx与jstatd,此文演示如何配置jmx进行连接调优. 配置指南 配置 功能 值 备注 -Dcom.sun.man ...

最新文章

  1. 十大经典排序算法(建议收藏)
  2. 会看会吃还要会做——自制小摊上的鸡蛋卷饼
  3. CodeForces 451A
  4. 两位小数乘两位小数竖式_人教版小学数学五年级上册小数乘整数公开课优质课课件教案视频...
  5. JSP Include 文件方式
  6. Python matplot画散列图
  7. SWPU ROUND #6(DIV.3)
  8. 2016年最值得学习的五大开源项目
  9. 苹果Mac视频特效合成神器:Blackmagic Fusion Studio
  10. 海康威视SDK基于JAVA二次开发
  11. vue仿微博评论回复_vue教程2-07 微博评论功能
  12. outlook服务器邮件满了怎么办,Outlook邮箱不能接收邮件提示邮件箱已满的解决方法...
  13. 深圳随到随考,科目四随到随考,科三理论第二理论随到随考说明
  14. 【微信小程序】接口生成自定义首页二维码
  15. 【redis】ERR AUTH <password> called without any password configured for the default user解决
  16. Linux 使用nohup命令运行python文件
  17. python爬空气污染实时数据_一键爬取空气质量相关指数
  18. 基于ssm的在线音乐播放网站的设计与实现
  19. 1-Java面试题-基础篇
  20. XLisetView+ViewPager无限轮播+多条目加载

热门文章

  1. 英语语法 -- 第一讲、语序和基本句式
  2. linux中的echo%3e文件,Linux文件已删除,引用未释放(deleted)
  3. 解读机器人在伦理规范中的社会行为
  4. 基于FME实现点云数据的过滤去噪和生成表面模型
  5. 计算机打开文件左栏怎么没有桌面,桌面任务栏不见了 - 电脑任务栏不见了的解决办法 - 安全专题...
  6. 程序也会过期,代码也会腐烂!建议这样做防止腐化!
  7. Springboot 集成积木报表(jimuReport)
  8. Linux-ubuntu20高分辨率如2k屏下deepin qq或wechat很小
  9. Prometheus TSDB
  10. 针织服装加工基础知识