IDEA(一)如何在IDEA中远程调试Jar包

项目的部署方式有在本地搭建服务器进行部署,或是将项目在远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是debug,但是如果项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?

1. 启动jar

在服务器中,通过以下命令启动可执行jar包

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=80 -jar health-test-1.0-SNAPSHOT.jar &

参数含义:
-XDebug 启用调试
-Xnoagent 禁用默认sun.tools.debug调试器
-Djava.compiler=NONE 禁止 JIT 编译器的加载
-Xrunjdwp 加载JDWP的JPDA参考执行实例
transport 用于在调试程序和 JVM 使用的进程之间通讯
dt_socket 套接字传输
server=y/n JVM是否需要作为调试服务器执行
address=2345 调试服务器监听的端口号
suspend=y/n 是否在调试客户端建立连接之后启动 JVM 
注意:-jar参数不能写到-XDebug参数前

2. 配置IDEA

在idea中按顺序打开Run => Edit Configurations => Remote => Configuration,设置 远程调试的项目名字name、远程需要调试机器的IP地址host、对应的端口号port,且与上面保持一致。Transport、Debugger mode保持默认。

3. 开始调试 

在本地项目中设置断点,然后访问远程机器上面的IP和端口,然后就可以在本地debug调试了

4. 问题汇总

(1)No executable code found at line

被调试的服务器需要开启调试模式,服务器端的代码和本地代码必须保持一致,则会造成断点无法进入的问题。

(2)java.net.ConnectException "Connection refused: connect"

ping服务器ip,telnet服务器ip port,如果能ping通但telnet不通,是由于端口无访问权限导致,需要开放80端口访问权限。如果ping不通,考虑是代理、hosts、dns等问题。

(3)centOS7 防火墙关闭但是远程端口无法访问问题

RedHat7的系统即便是关闭防火墙,端口也只开放22,所以在关闭防火墙后,通过物理机仍无法访问虚拟机的808080端口,可以通过firewall启用其他端口的远程访问权限。

添加80端口的访问权限,这里添加后永久生效
#firewall-cmd --zone=public --add-port=80/tcp --permanent
#firewall-cmd --reload
查看80端口访问权限情况
#firewall-cmd --zone=public --query-port=80/tcp
关闭80访问权限
#firewall-cmd --zone=public --remove-port=80/tcp –permanent

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值