如何使用 Idea 远程调试 Java 代码

如何使用 Idea 远程调试 Java 代码,第1张

项目的部署方式有在本地搭建服务器进行启动或是debug,或是将项目远程服务器上面部署。一般如果在本地搭建服务器的时候,可以直接选择启动或是直接debug,但是如果项目部署在远程的服务器上面的时候, 我们该如何进行调试呢?而一些大公司的项目是不需要在本地搭建应用服务器的,为了环境统一,应用服务器都是在远程服务器上面,这时我们就需要用远程debug,通过远程服务器的ip地址和远程开启的debug端口进行调试:

1.首先把远程服务器上面需要调试的代码放在IDE里面

2.在菜单栏选择run ->edit Configuration,点击+号,选择remote,然后在配置项里面输入远程需要调试机器的IP地址和所对应的端口号,最后在最上面输入该次一远程调试的项目名字,方便自己区分不同的项目

3.将配置项中的-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5080添加到JAVA_OPTS的属性中,重启远程tomcat服务器

3.再次选择菜单条run按钮,找到debug+“自己设置的项目名字”,点击然后就可以进行远程debug调试

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

然后将得到的一串参数,上图中的 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=17902 拷贝下来。

假如,原先的启动命令为:

将上面拷贝下来的内容加在程序启动命令上面,最后变成了:

首先,远程服务器的程序使用新启动命令重新启动,然后本地启动刚刚新建的 Remote JVM Debug Application ,稍等一会,当连接建立成功后,控制台会出现如下图所示的内容:

最后,Enjoy!

在本机进行开发用tomcat部署时我们可能会在tomcat/bin/catalina.sh配置如下debug参数进行调试:

但是在远程服务器上同样的配置却在启动调试时报错:

检查Remote配置:

IP和端口号都没问题但是"Connection refused",于是我们检查服务器16808端口情况:

可见当前16808端口服务被绑定了回环地址,外部无法访问,说明JAVA_OPT里address如果不指定ip会默认绑定到本机,如果是要提供远程调试的服务器上的工程,就需要指定当前服务器地址才行,问题于是解决。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/410017.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存