在网上找了很多解释和应用,不过还是花了很多时间摸索,所以在这里写一下自己的总结。
一. debug 环境
- 本地:window10、 jdk1.8 、idea
- 虚拟机:CentOS7、jdk8、tomcat9
二.如何远程链接java引用并且debug
- 在linux系统上开启java引用的端口监听,将java应用的debug绑定到端口,等待本地idea链接。
- 本地设置远程debug的环境,将本地idea链接到远程linux系统,进行java应用调试。
三.具体操作
- 首先在本地idea配置一个运行配置(remote):点击run->Edit Configuration(下拉idea右上角的下拉框,点击Edit Configuration)。
(以上两处二选一) - 设置虚拟机的ip地址以及虚拟机监听的端口号。
红色为虚拟机ip地址以及端口号,黄色为需要复制到虚拟机的内容,设置好后点击保存,并且最好重构项目。 - 当需要debug的应用为普通java应用时:打开虚拟机的应用debug,开启监听。
在虚拟机输入命令行(黄色为从idea复制的字段,设置了虚拟机参数,最后为自己debug的jar包)
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 demo.jar - 当需要debug的应用为部署在tomcat的web应用时方式1:(本人未尝试,为网上经验)
在tomcat的bin目录中,新建setenv.sh文件,输入:(代码中的部分可按黄色字体部分修改,也可加上虚拟机参数)
CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
- 当需要debug的应用为部署在tomcat的web应用时方式2:(本人未尝试,为网上经验)修改tomcat的bin目录下的Catalina.sh文件,在第一行加上(代码中的部分可按黄色字体部分修改,也可加上虚拟机参数)
export JAVA_OPTS='-agentlib:jdwp=transport=dt_s