需求背景
我们希望在本地可以方便的知道远程服务器上代码的运行时状态,如果靠打日志终归有点不方便,而且可能打日志的地方不对就需要多次push代码。
实现工具
服务器:阿里云ECS
编辑器:idea2019
JDK:1.8
杂七杂八:maven3.6.3、springboot
实现流程
- 新建springboot项目:
就最简单的springboot项目,插件选一个web就好,目的是测试
- 新建一个controller,贴上我的项目路径:
- 新建并编辑controller,以下是我已经开启了debug模式:
4. 选择
Edit Configurations
,新建一个Remote
的configuration:
- 编辑该Remote:
下方这个Command line arguments for remote JVM
就是一会儿要用到的启动参数 - 将项目打包为jar并且放到服务器上
- 使用启动参数启动:
$ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar debugdemo-0.0.1-SNAPSHOT.jar
- 需要在idea开启debug模式
点击绿色小甲虫,然后会连接远程服务器,连接成功控制台应该有输出:
Connected to the target VM, address: 'XXX.XXX.XXX.XXX:5005', transport: 'socket'
- 如果你发现连不上,可以在阿里云安全组里加上你选中的端口号。
连接成功后就可以像我第二个图中一样,进入debug模式,观察程序运行状态。
希望能对大家有所帮助 😃