java远程调试(介绍两种发布方式)

1.jar包启动时

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar demo.jar--jdk1.7之后

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar demo.jar--jdk1.7之前

2.tomcat启动时

服务器端:

Jdk1.7之前,需要在web容器中添加如下命令:

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

 

以tomcat为例,也就是需要在Catalina.sh文件中修改CATALINA_OPTS参数,加入上述内容:

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

 

Jdk1.7之后,需要在web容器中添加如下命令:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

 

还是以tomcat为例,修改Catalina.sh文件:

Set CATALINA_OPTS=$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

 

不过,根据观察,在tomcat原本的catalina.sh配置文件应该就已经对远程调试的参数进行了默认配置:

全局搜索CATALINA_OPTS,就能看到如下配置(tomcat7和8.5都有):

if [ "$1" = "jpda" ] ; then

  if [ -z "$JPDA_TRANSPORT" ]; then

    JPDA_TRANSPORT="dt_socket"

  fi

  if [ -z "$JPDA_ADDRESS" ]; then

    JPDA_ADDRESS="8000"

  fi

  if [ -z "$JPDA_SUSPEND" ]; then

    JPDA_SUSPEND="n"

  fi

  if [ -z "$JPDA_OPTS" ]; then

    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"

  fi

  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"

  shift

从上述配置中就可以看出,tomcat已经默认提供远程调试的设置了,所以不需要我们再去单独配置了,我们只需要本地使用相应端口进行远程调试即可。

 

本地操作:

 

首先本地对debug方式进行设置,改为以Remote Java Application的方式进行启动,如下图所示:

 

java远程调试(介绍两种发布方式)_第1张图片

 

设置port为远程调试的端口,按照上述介绍,就应该设置为8000,然后修改host为服务器访问ip或域名,点击右下角apply

java远程调试(介绍两种发布方式)_第2张图片

配置好启动方式后,去需要调试的类打上断点,然后以dubug模式启动即可。

然后通过各种工具访问需要调试的后台,即可触发调试:

值得注意的是,如果服务器上项目没有启动,那么你本地的服务启动会连接错误,所以需要先保证服务器上的服务是成功启动了的。

你可能感兴趣的:(学习)