-
背景
项目在本地正常运行,可是部署到服务器上面就会出现各种问题,这时候,需要知道线上的代码是怎么运行的.所以这个技能是每个java工程师必须get的.
-
调试步骤
-
将项目打包,部署到服务器上,并使用对应虚拟机的参数启动jar包.
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 /home/test/teset.jar
如果你的项目使用了项目内的jdk,而没有在环境中安装jdk,那需要使用本地内的jdk执行命令.
/home/test/jdk/bin/java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 /home/test/teset.jar
-
如果是Tomcat的工程,需要从服务器上复制tomcat的catalina.sh文件,在第一行添加参数,然后替换掉服务器上的该文件.
-
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8089"
-
注意对应端口为8089,所以idea配置的时候,也要配成8089,而不再是5005了
-
配置后启动tomcat(startup.sh).
-
-
设置Idea,监听端口
- 点击Edit Configurations,案图片步骤添加romote.
-
JVM的参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005