【Java】使用IDE开发工具远程调试Java代码

时间:2022-11-23 08:23:19

概述

  服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态

测试项目

  创建方式参考:【Java】Maven Tomcat插件使用

  项目中新增了一个测试的Servlet,如下:

 public class HelloWorldServlet extends HttpServlet {

     @Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("-------HelloWorldServlet--------");
resp.getWriter().print("SUCCESS");
}
}

服务端使用特定JVM参数运行代码

  要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是:

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

  其中5005是调试端口

本地连接远程服务器debug端口

  使用IDEA为例

  1、服务端(本例也是在同一台电脑上运行)运行java项目,命令:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test-webapp-1.0-SNAPSHOT-war-exec.jar

  2、本地IDEA配置
    【Java】使用IDE开发工具远程调试Java代码【Java】使用IDE开发工具远程调试Java代码
    【Java】使用IDE开发工具远程调试Java代码

  3、配置完成,连接调试
    【Java】使用IDE开发工具远程调试Java代码
    控制台输出信息,显示已连接
    【Java】使用IDE开发工具远程调试Java代码

  4、在Servlet中,增加断点即可调试。
    【Java】使用IDE开发工具远程调试Java代码

  使用Eclipse为例

  1、服务端(本例也是在同一台电脑上运行)运行java项目,命令:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test-webapp-1.0-SNAPSHOT-war-exec.jar

  2、本地IEclipse配置

  a、【Java】使用IDE开发工具远程调试Java代码

    b、【Java】使用IDE开发工具远程调试Java代码

    c、【Java】使用IDE开发工具远程调试Java代码 

  3、配置完成,连接调试,选择得bug即可