java项目如何远程调试

唠嗑部分

很多java开发的小伙伴不知道java项目如何远程调试,每次出现环境问题都会十分纠结,只能在源代码中通过一行一行的日志去排查,即没有技术含量也浪费时间

今天来说一说,java项目如何远程debug

Java XDebug(远程debug模式)参数详解

  • -Xdebug:通知JVM工作在debug模式下;
  • -Xnoagent 禁用默认sun.tools.debug调试器。
  • -Djava.compiler=NONE 禁止 JIT 编译器的加载。
  • -Xrunjdwp:通知JVM使用(java debug wire protocol)来运行调试环境;加载JDWP的JPDA参考执行实例
  • transport:监听Socket端口连接方式(也可以dt_shmem共享内存方式,但限于windows机器,并且服务提供端和调试端只能位于同一台机);
  • server:server=y表示当前是调试服务端,=n表示当前是调试客户端
  • suspend:suspend=n表示启动时不中断,一般用于设置主动连接;suspend=y表示启动时就进入调试模式,一般用于被动连接
  • address=port表示远程debug所开放的端口号
言归正传

首先编写案例代码

/**
 * @Project: spring-boot-remote-debug-demo
 * @Author: cxs2014501@163.com
 * @Create: 2023/2/13 13:40
 * @Description:
 **/
@RestController
@RequestMapping("/debug")
public class DebugController {

    private static final String ACCOUNT = "admin";
    private static final String PWD = "admin1234";

    @PostMapping("/login")
    public Map<String, Object> login(@RequestBody LoginDTO dto){
        Map<String, Object> map = new HashMap<>();
        if (ACCOUNT.equals(dto.getUsername()) && PWD.equals(dto.getPassword())) {
            LoginVO vo = new LoginVO();
            BeanUtils.copyProperties(dto, vo);
            vo.setLoginTime(LocalDateTime.now());
            map.put("data", vo);
            map.put("msg", "登陆成功");
        } else {
            map.put("msg", "登陆失败,用户名或密码错误");
        }
        return map;
    }
}

启动

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888 -jar app.jar --server.port=2023 &

在这里插入图片描述

(自己虚拟机调试要关闭防火墙)

在这里插入图片描述

idea配置调试

位置:运行 > 编辑配置

在这里插入图片描述
在这里插入图片描述

开始调试

在这里插入图片描述

使用postman或curl请求:/debug/login

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MI1Lu0sh-1682596214711)(pictures/image-20230213143228941.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Phvy7vw-1682596214711)(pictures/image-20230213143250731.png)]

结语

1、制作不易,一键三连再走吧,您的支持永远是我最大的动力!

2、Java全栈技术交流Q群:941095490,欢迎您的加入!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小白.

感谢老板,祝老板今年发大财!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值