Preface

一开始, 我只是想让 idea 远程运行代码, 像vscode运行前端一样, 也就是目前 idea 中的 Remote Development (还处于 beta 版本).

不过意外让我发现了 idea 的远程调试功能, 这个功能非常适合测试环境 (快速调试 + 减轻电脑压力 + 方便联调), 更符合我们的使用场景, 让我们快速开始吧.

1. 新增配置

  • Run/Debug Configurations 上点击新增 选择 Remote JVM Debug.
  • 填入远程主机地址: Host
  • 「可选」端口 5005 可以修改, 但服务端务必记得 开放端口
  • 「可选」JDK 版本可选择对应范围
  • 「可选」多个 model 项目, 选择 main 运行类所在的模块 model
  • 拷贝 idea 给我们生成的 Command line arguments... 既命令行参数
  • 保存配置

2. 远程服务端运行

我们使用 maven 工具进行打包, 然后传输到服务器上, 使用 java -jar … 或 nohup java -jar … 运行程序 (后者为后台运行)

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 AAA.jar

-agentlib:jdwp 开启调试环境 (jdwp = java debug wire protocol)

-Xrunjdwpagentlib:jdwp 参数的选项有:

  • transport=dt_socket 表示连接JVM的方式. 调试数据传输方式 socket / shmem 共享内存 (Win)
  • address=5005 TCP/IP 端口暴露, 用来调试服务端
  • suspend=y 启动时是否中断. 在执行应用程序之前等待您连接, 如果是 ‘y’,告诉 JVM 等待调试器连接后才开始执行, 否则立即执行
  • server=y/n 调试过程区分 服务端/客服端

2.1. 扩展问题: -Xdebug -Xrunjdwp-agentlib:jdwp 有什么区别

Reference: stackoverflow

在 jdk 5 之前, 使用 -Xdebug-Xrunjdwp 参数, 而这些选项在以后的版本中仍然有效, 但它将以解释模式而不是 JIT 模式运行, 这会更慢.

从 jdk 5 开始最好使用 -agentlib:jdwp 单一选项.

3. 开始调试

idea 中以 debug 模式运行我们的配置即可

(完)

idea 远程调试代码相关推荐

  1. 【flink】Flink 使用IntelliJ IDEA 进行远程调试代码

    1.概述 转载:Flink 使用IntelliJ IDEA 进行远程调试代码 改文章和 95-070-040-源码-源码调试-FLINK源代码调试方式 重复了. Flink on Yarn 不好调试, ...

  2. 连接远程电脑主机,pycharm远程调试代码方法

    1.首先,确保你的电脑和远程主机在一个局域网中(比如你电脑的远程主机都连接了公司内网,或者是校园网) 2.知道远程主机的ip地址,和主机用户的账户名和密码. 3.可以使用任何SSH工具,这里用Pych ...

  3. Hadoop 使用IntelliJ IDEA 进行远程调试代码

    . 一 .前言 二 .服务器端配置. 2.1. 设置启动远程debug端口 2.2. 具体操作 三 .Idea配置 3.1. 根据报错信息定位到断点所在的位置 3.2. 配置远程连接 3.3. 启动调 ...

  4. docker部署ubuntu并连接ssh远程调试代码

    一.拉取容器 docker pull ubuntu:bionic 二.运行容器 docker run --name my-ubuntu -itd -p 6789:22 ubuntu:bionic # ...

  5. mac m1 python vscode 远程调试代码(debug)配置,报错:Exception has occurred: ModuleNotFoundError

    1. 配置python解释器 修改程序调试时的python解释器(interpreter) 有几个地方需要设置(不确定哪个地方起作用了还是说都要配置,vs这玩意我觉得设置起来没有Pycharm友好): ...

  6. 计算机毕业设计 SSM+Vue消防管理系统 智慧消防系统 消防设备管理系统 消防知识宣传网站Java Vue MySQL数据库 远程调试 代码讲解

  7. 计算机毕业设计 SSM+Vue农家乐管理系统 农家院住宿管理系统 民宿旅游预约管理系统 Java Vue MySQL数据库 远程调试 代码讲解

  8. 计算机毕业设计 SSM同学录管理系统 同学聚会报名系统 在线聚会报名系统Java Vue MySQL数据库 远程调试 代码讲解

  9. 计算机毕业设计 SSMKTV点歌系统 音创ktv点歌系统 卡拉ok点歌系统Java Vue MySQL数据库 远程调试 代码讲解

最新文章

  1. 如何降低在 npm 模块中发布敏感信息的可能性
  2. Android深入浅出系列之实例应用—手机页面之间的跳转
  3. Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream
  4. 什么是声明式事务控制
  5. Java TDD简介–第1部分
  6. leetcode186. 翻转字符串里的单词 II
  7. MVC安全:打破固定会话
  8. Key为数字的Json数据标准化成标准Json格式
  9. Apache环境.htaccess伪静态301跳转(www与不带www)
  10. 北风网 传智播客 视频地址
  11. access h3c交换机光口_华为交换机的配置及:access、trunk、hybird端口详解
  12. 2014完美世界校招笔试题及答案
  13. Android 号牌号码识别,支持新能源车牌,离线识别
  14. 计算机整体硬盘销毁,如何完全销毁硬盘上的数据?
  15. 李开复微博数据分析--微博爬虫、数据挖掘、数据可视化(持续更新)
  16. Java什么时候会触发类初始化及原理(详解)
  17. 《破窑赋》 《命运赋》 《时运赋》
  18. 图像、图形、图片文件格式
  19. Win10获取C盘所有权限,所有者TrustedInstaller 变更administrators【强行更改权限有风险,请谨慎使用,初次更改后windows建就打不开开始栏了】
  20. MySql随笔-常见的数据库对象

热门文章

  1. JavaScript异步执行流程
  2. mybatis —— ORM框架
  3. Nginx 配置参数详解
  4. [LaunchPad]M430_Launchpad串口UART使用硬件方面注意点
  5. 刚想了一个关于丝绸电影节的吉祥物创意,自我感觉良好
  6. 让yahoo邮箱支持pop
  7. 2018-1-11-【转】PHP简洁之道
  8. 详解ArrayDeque
  9. 【Vue】 第十六部分 插槽(默认插槽、具名插槽、作用域插槽)
  10. malloc函数的用法(超级白话版)