zoukankan      html  css  js  c++  java
  • Java远程调试

    JDWP的全称是Java Debug Wire Protocol,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。其核心API已经包含在JDK中。

    一. 普通Java项目的远程调试(无需运行在企业级容器中的项目)

    1. 在运行Java项目的远程服务器上的运行脚本中加入以下设置参数:

    java -Xms700m -Xmx700m -Xdebug -server -Xrunjdwp:transport=dt_socket,server=y,address=9527 com.imop.webt.gameserver.GameServer

    java   -Xms700m -Xmx700m -Xdebug -server -Xrunjdwp:transport=dt_socket,server=y,address=9527 -jar com.imop.webt.gameserver.GameServer

    红色部分参数为与远程调试相关的参数

    开放9527端口

    iptables -A INPUT -p tcp --dport 9527 -j ACCEPT

    2. 在本地的eclipse中 Debug(小蜘蛛图标)>Debug Configuration...>Remote Java Application>New下创建一个远程调试的项目并设置相关参数

    并在需要debug的地方打断点。

    二. Web项目(或需要运行在企业级容器中的项目)
     
    1. 在远程服务器的运行的Web容器的启动脚本中加入以下配置(以Resin为例子),将Java项目部署到容器中,启动容器服务器。
    Resion——————————————————————————————————————————————————————
    set JAVA_HOME=C:/Program Files/Java/jdk1.6.0_16
    set RESIN_HOME=D:/resin-2.1.17
    set PATH=%JAVA_HOME%/bin;%PATH%;%RESIN_HOME%/bin

    httpd.exe -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9527

    或者在resin.conf中设置

    <jvm-arg>-Xdebug</jvm-arg>

    <jvm-arg-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9527</jvm-arg>

    红色部分为与远程调试相关的配置。

    tomcat——————————————————————————————————————————————————————

    a、Linux中配置tomcatcatalina.sh中添加如下
    CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"(不要换行,要在同一行)

    b、Window中修改 catalina,bat文件,添加:

    Set  “CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

    如图:


    参数说明:

    -Xdebug                              : 启用调试模式

    -Xrunjdwp<sub-options>  : 加载JVMJPDA参考实现库

    transport=dt_socket           :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器

    address=8000                     :调试服务器监听的端口

    server=y                             : 是否是服务器端,n为客户端

    suspend=n                         : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程

     

    2. 在本地的eclipse中添加相关远程调试设置参数(与前面的配置相同)

    如果要在本地看到输入输出(read and system.out.println)的结果显示,按F5加入控制

  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/shz365/p/7575422.html
Copyright © 2011-2022 走看看