IDEA远程调试程序

一、服务端

本次实验服务端配置:

  • Tomcat:Apache Tomcat/8.5.32 #查看命令 sh Tomcat安装目录/bin/version.sh
  • JVM:1.8.0_131-b11 (jdk 8)
  • System:3.10.0-693.el7.x86_64 (Centos 7) #查看命令 uname -a 或者 uname -r

1.服务器开启远程调试模式,增加JVM启动参数,以支持远程调试

tips:要确保下面的端口没有被占用默认为:5005,这里使用的是10086

Tomcat:

cantalina.sh所在目录
IDEA远程调试程序_第1张图片

# Linux修改"bin/catalina.sh"文件(windows修改"bin/catalina.bat"文件),追加下面这个一行
CATALINA_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10086'

Jar:

在这里插入图片描述

# test.jar所在的目录,执行下面命令
nohup java -Xms256m -Xmx1G -Xdebug -Xrunjdwp:transport=dt_socket,address=10086,server=y,suspend=n -jar test.jar > output.log 2>&1 &

#命令解释 
# nohup 与  > output.log 2>&1 & 表示程序进入后台,日志信息输出到output.log
# 2>&1: 请参考一篇博客 https://blog.csdn.net/zhaominpro/article/details/82630528
# -Xms256m:-Xms是初始化堆内存值,这里表示初始最小256m内存;
# -Xmx1G :-Xmx是堆内存最大值,这里表示最大使用1G;
# -Xdebug -Xrunjdwp:transport=dt_socket,address=10010,server=y,suspend=n 远程调试所需参数

# 也可以创建一个shell脚本
# 1.创建文件: vi srath.sh
# 2.写入上面那条命令(拷贝命令--> 输入i--> 【Ctrl+Insert】 -->【ESC】-->输入冒号(英文)-->输入wq按回车
# 3.附加权限: chmod +x start.sh
# 4.执行命令: sh start.sh
# 5.查看进程:"lsof i:端口号" 或者 "netstat -anp | grep 端口号" 或者 "ps -ef | grep test.jar"

启动远程调试的命令参数解释

  • jdwp:是Java Debug Wire Protocol的缩写
  • transport:有两种形式,分别是socket和shared memory,需要跨机器,只能用socket;
  • server:JVM是否需要作为调试服务器执行
  • suspend:是否调试客户端建立连接之后启动虚拟机。如果是y,则需要等调试端机器上的debugger开启后,程序才会开始运行。否则,程序启动时候不会挂起,直接运行。
  • address:监听端口10086作为调试端口

二、客户端

本次实验客户端配置:

  • Development Tool:IntelliJ IDEA 2018.2.5
  • JDK:jdk1.8.0_131 (jdk 8)
  • System:windos 10

1.本机Intellij IDEA远程调试配置(填写远程ip,设置的端口号,选择需要调试的项目模块)

IDEA远程调试程序_第2张图片

2.打开IDEA,程序上打上断点,运行模式选远程,点击运行。调用服务器端运行的系统程序,系统自动进入断点

在这里插入图片描述

3.访问接口即可(提示:本地访问,会导致远程服务阻塞)

你可能感兴趣的:(#,IDEA,java,intellij,idea)