- 浏览: 174673 次
- 性别:
- 来自: 北京
最新评论
-
chainhou:
sunshineman 写道maven 编译不过啊,连不上ec ...
jetty的下载,编译,安装等 -
sunshineman:
maven 编译不过啊,连不上eclipse的proxy
jetty的下载,编译,安装等
首先,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的执行.
虚拟机参数设置
1.启用调试服务
-Xdebug 启用调试
-Xrunjdwp:<sub-options> 加载JVM的JPDA参考实现库
2.Xrunjdwp子参数(sub-options)配置
Xrunjdwp子参数的配置格式如下
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
几个例子
-Xrunjdwp:transport=dt_socket,server=y,address=8000
在8000端口监听Socket连接,挂起VM并且不加载运行主函数直到调试请求到达
-Xrunjdwp:transport=dt_shmem,server=y,suspend=n
选择一个可用的共享内存(因为没有指address)并监听该内存连接,同时加载运行主函数
-Xrunjdwp:transport=dt_socket,address=myhost:8000
连接到myhost:8000提供的调试服务(server=n,以调试客户端存在),挂起VM并且不加载运行主函数
-Xrunjdwp:transport=dt_shmem,address=mysharedmemory
通过共享内存的方式连接到调试服务,挂起VM并且不加载运行主函数
-Xrunjdwp:transport=dt_socket,server=y,address=8000,
onthrow=java.io.IOException,launch=/usr/local/bin/debugstub
等待java.io.IOException被抛出,然后挂起VM并监听8000端口连接,在接到调试请求后以命令/usr/local/bin/debugstub dt_socket myhost:8000执行
-Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe
等待一个RuntimeException被抛出,然后挂起VM并监听一个可用的共享内存,在接到调试请求后以命令d:\bin\debugstub.exe dt_shmem <address>执行,<address>是可用的共享内存
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
转自:http://freedommedal.blog.51cto.com/2799387/519540
调试环境,并支持设置断点,支持线程线级的调试。
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的执行.
虚拟机参数设置
1.启用调试服务
-Xdebug 启用调试
-Xrunjdwp:<sub-options> 加载JVM的JPDA参考实现库
2.Xrunjdwp子参数(sub-options)配置
Xrunjdwp子参数的配置格式如下
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
几个例子
-Xrunjdwp:transport=dt_socket,server=y,address=8000
在8000端口监听Socket连接,挂起VM并且不加载运行主函数直到调试请求到达
-Xrunjdwp:transport=dt_shmem,server=y,suspend=n
选择一个可用的共享内存(因为没有指address)并监听该内存连接,同时加载运行主函数
-Xrunjdwp:transport=dt_socket,address=myhost:8000
连接到myhost:8000提供的调试服务(server=n,以调试客户端存在),挂起VM并且不加载运行主函数
-Xrunjdwp:transport=dt_shmem,address=mysharedmemory
通过共享内存的方式连接到调试服务,挂起VM并且不加载运行主函数
-Xrunjdwp:transport=dt_socket,server=y,address=8000,
onthrow=java.io.IOException,launch=/usr/local/bin/debugstub
等待java.io.IOException被抛出,然后挂起VM并监听8000端口连接,在接到调试请求后以命令/usr/local/bin/debugstub dt_socket myhost:8000执行
-Xrunjdwp:transport=dt_shmem,server=y,onuncaught=y,launch=d:\bin\debugstub.exe
等待一个RuntimeException被抛出,然后挂起VM并监听一个可用的共享内存,在接到调试请求后以命令d:\bin\debugstub.exe dt_shmem <address>执行,<address>是可用的共享内存
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
转自:http://freedommedal.blog.51cto.com/2799387/519540
发表评论
-
java
2014-05-26 17:36 0http://hi.baidu.com/jiajiajava ... -
JAVA中的线程状态都有哪些?
2014-05-04 10:38 0经常会遇到这样的问题,JAVA中的线程都有哪些状态? 通过du ... -
java.lang.IllegalStateException: The request associated with the AsyncContext ha
2013-12-27 11:09 5619在使用Servlet3.0的异步特性时,免不了会遇到下面这个异 ... -
The display name was defined in multiple fragments with different values includi
2013-12-06 11:13 3256在使用Servlet3.0的新特性中关于WebFragment ... -
java.lang.IllegalStateException: Not supported.at org.apache.catalina.connector.
2013-12-04 14:30 3949在使用Servlet3.0的异步特性的时候,经常会遇到如下异步 ... -
java中出现的ConcurrentModificationException产生原因,解决方式及其它
2013-08-23 14:55 1322JAVA开发中有时会出现ConcurrentModificat ... -
windows中有用的查找端口占用的命令
2013-07-19 15:43 1114在windows中可以使用如下命令,查看端口昌被哪个程序占用。 ... -
ClientCommunicatorAdmin restart/Checker-run 等异常的处理
2013-07-15 19:32 3890在做JMX相关的开发过程中,下面这个异常一个会遇到: 20 ... -
Apache启动异常:apache service unable to open logs
2013-07-04 15:09 7457当启动Apache时,如果弹出窗口提示引用unable to ... -
VBox异常退出后,不能启动问题的解决办法
2013-06-26 15:01 6723今天把VBox中的进程强制停止后,启动VBox的时候,Ubun ... -
InetAddress.getLocalHost().getHostAddress()获取的IP不正确
2013-06-09 17:43 10522今天把在Windows下运行很正常的程序拿到Linux下测试, ... -
获取JVM的所有可选参数
2013-05-30 17:54 954使用如下命令可以列出所有java可选的参数 java -XX: ... -
在windows中获取某个进程的具体执行路径
2013-05-20 17:55 2256经常遇到要处理某类问题,知道某个具体进程,但是却不知道真正的执 ... -
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is
2013-05-08 17:49 2873今天在学RMI的时候遇到了这个问题: java.rmi.Un ... -
java中的toString()和(String)obj的区别
2013-04-22 18:07 1703java中的toString()和(String)obj的区别 ... -
Struts2 Dispatcher initialization failed No mapping found for dependency default
2013-04-10 16:41 1183在struts2的使用时如果发现以下异常信息, 严重: D ... -
java debug
2013-03-27 06:46 8931、 条件断点 断点大家都比较熟悉,在Eclipse Jav ... -
jdk Logger引起的NullPointerException
2013-03-25 18:22 1008我们平时调用JDK的log来记录日志,都会习惯拿到一个logg ... -
对于应用服务器中的虚拟主机设置别名后,使用别名访问应用
2013-01-21 17:36 1478对于应用服务器中的虚拟主机设置别名后,使用http://别名 ... -
java.lang.IllegalStateException: Post too large的产生原因及解决方式
2013-01-10 18:35 3558最近客户那出了该异常: java.lang.Illegal ...
相关推荐
### Java远程调试操作步骤 #### 一、准备工作 在进行Java远程调试之前,我们需要完成一些必要的准备工作,确保环境配置正确。 ##### 1.1 安装JCE无限制策略文件 根据描述中的“下载UnlimitedJCEPolicyJDK8”,这...
### JAVA远程调试详解 在开发过程中,特别是在分布式系统或微服务架构中,远程调试成为解决复杂问题的关键技术之一。本文将详细介绍如何通过JAVA进行远程调试,包括配置环境、启动调试服务器以及连接远程调试客户端...
### JAVAECLIPSE 下配置 WINDCHILL 远程调试详解 #### 一、配置概述 本文档旨在详细介绍如何在 JavaEclipse 环境下配置 Windchill 进行远程调试的过程。远程调试是指在一个主机上调试运行在另一台机器上的应用程序...
### Java远程调试详解 在软件开发领域,尤其是大型分布式系统或微服务架构中,Java远程调试是一项关键技能,它允许开发者在本地机器上调试运行在远程服务器上的Java应用程序,极大地提高了问题定位和解决效率。本文...
MyEclipse作为一款强大的Java集成开发环境,提供了远程调试功能,使得开发者能够远程连接到运行在其他机器上的应用,进行实时的代码调试。下面我们将详细讲解MyEclipse远程调试的配置方法及其相关知识点。 1. **...
本文将详细解释远程调试方法中的参数配置,尤其是针对使用Tomcat服务器进行Java远程调试的情况。 #### 远程调试基本概念 远程调试是指通过网络连接,在本地计算机上控制并调试运行在远程服务器上的程序。这种方式...
NC Eclipse 远程调试是指在 Eclipse 集成开发环境中,使用 Java Debug Wire Protocol (JDWP) 实现远程调试 Java 应用程序的功能。JDWP 是一个基于 socket 的通信协议,用于在 debug 客户端和服务器之间传输调试信息...
通过合理设置Java调试参数,开发者可以在开发、测试甚至生产环境中对Java应用程序进行远程调试,这对于定位问题、理解程序运行时的行为至关重要。本文将围绕“Java调试参数”这一主题展开,详细介绍与之相关的各项...
本篇文章将详细讲解如何在Eclipse中设置和使用远程调试Java代码。 首先,我们需要理解远程调试的基本原理。远程调试允许开发者在本地IDE上对运行在另一台机器上的应用程序进行调试。这通常通过JVM的远程调试接口...
要在远程服务器上启用Java远程调试,我们需要在启动Java应用时加入`-Xdebug`和`-agentlib:jdwp`参数。例如: ```shell java -jar -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8999 ...
Windchill 是一种基于 Java 平台的开发环境,它提供了一个强大而灵活的远程调试机制。本文将详细介绍 Windchill 远程调试的配置和实现过程。 一、Windchill 远程调试概述 Windchill 远程调试是指在 Windchill 开发...
在IT行业中,开发人员经常需要面对复杂的问题,这时远程调试技术就显得尤为重要。... 首先,让我们了解一下什么是远程...通过阅读《PHP,Java远程调试教程.docx》这份文档,相信你会得到更具体的步骤指导和实践经验分享。
为了能够进行远程调试,我们需要在服务器上启动 Spring Boot 应用时加入特定的 JVM 参数来启用调试模式。 ##### 启动参数配置 服务器端启动 Spring Boot 应用时,需要添加以下参数: ```sh nohup java -Xdebug -...
- 远程调试命令的关键参数是`-agentlib:jdwp`,它告诉JVM启用Java调试接口(Java Debug Wire Protocol,JDWP)。命令示例如下: ```shell -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ...
### Java开发环境Eclipse远程调试端口配置 #### 运行环境配置 为了实现Java Eclipse远程调试功能,首先需要确保本地开发环境与远程服务器环境之间的兼容性和一致性。具体步骤如下: 1. **运行ncSysconfig命令**:...
在使用 Spring Boot 进行远程调试时,默认使用 Java 命令来启动。例如,示例项目启动命令为:java -jar xxx.jar。然后,在服务器端开启远程调试端口 5005(端口可自定义,但要注意服务器防火墙)。在客户端可以通过 ...
Java Platform Debugger Architecture (JPDA) 是Java开发工具的一部分,它为开发者提供了强大的远程调试功能,使得可以在一台机器上调试运行在另一台机器上的Java应用程序。本文将详细介绍如何使用JPDA进行Java程序...
Eclipse 远程调试是指在 Eclipse 中对 Java 应用程序进行远程调试,通过配置 Tomcat 和 Eclipse,可以实现对远程服务器上的 Java 应用程序的调试。下面将详细介绍 Eclipse 远程调试的配置和使用方法。 一、配置 ...
### WebLogic与Tomcat远程调试知识点详解 #### 一、WebLogic远程调试配置步骤 **1. 准备工作** - **安装WebLogic服务器**:确保安装了WebLogic服务器,并且成功创建了一个域。 - **安装Eclipse集成开发环境...
在IT行业中,开发和调试Java应用是日常工作的重要组成部分。Eclipse作为一款强大的Java集成开发环境(IDE),常常被用于编写和测试代码。Tomcat和WebLogic则是两种常用的Java应用服务器,用于部署和运行Web应用程序...