前提条件
1、本地机器与远程服务器网络可以互通;
2、本地机器代码与远程服务器上跑的代码保持一致。
本地机器IDEA配置
1、点击Run按钮
2、点击Run按钮后会出现如下图所示的列表
3、点击Edit Configurations按钮,可看到如下界面
4、找到Remote按钮后,点击它,出现如下界面
依次来讲解图中的步骤1、2、3、4:
1)点击步骤1指向的蓝字,会变成下图这样
即创建了一个模板,可以对这个模板命名,如我对这个模板取个名为testRemoteDebug。
2)步骤2里把localhost改为想要远程调试的服务器的地址(域名或ip),如我这里改为我的服务器地址:192.168.1.126
3)步骤3为改远程调试的端口号,你可以改,也可以选择使用默认的,5555就是默认的;
ps:但是如果后续出现端口已被占用的情况那还是得改
例如我这里修改远程调试端口为38888,如下图所示
改完步骤1、2、3后,可以自动出现如上图红框所示的远程服务器应用程序需要添加的命令行参数。
4)步骤4为指定需要远程调试的项目模块
5、到此本地IDEA部分已经配置完了,点击Apply和OK保持即可。
远程服务器启动参数配置
1、将刚才在步骤3得到的远程jvm命令行参数拷贝出来
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=38888
2、添加到远程服务器java应用的启动参数中
3、重启远程服务器待调试的java应用程序。
开始远程调试
1、在本地IDEA启动debug程序
点击Run->Debug
2、正常连接上远程服务器的话,会有如下图的提示
这就表示已连接上远程服务器,可以在本地IDEA设置程序断点,并向远程服务器发请求开始调试之旅。
3、如果上述步骤都没出错,但是却出现下图这种情况,即连不上远程服务器的情况:
Disconnected from the target VM, address: ‘127.0.0.1:xxxxx’, transport: ‘socket’
这种情况主要是因为调试端口被占用导致的,这时候也很好解决,只需要换一个调试端口就可以了,具体操作步骤如下:
1)打开刚才的IDEA配置界面,然后修改配置的调试端口,一般选择大一点的比较好,被占用的可能性较低,保存;
2)远程服务器配置的调试端口也得改为一样的;
3)重启远程应用;
4)重新在IDEA运行debug;
5)如果还出现这个错误,那就重复上述操作,肯定会找到一个端口可以连接成功的。