问题:
一般情况下,可以打成Jar包的项目,它的源码运行Application项目时,是可以直接调试源码的。但是实际项目在测试环境运行时是以jar的形势运行,碰到测试环境出问题,本地运行OK的这种情况,有两种case:1、远程在线调试,2、把jar下载下来,本地调试jar包
现已本地调试jar为例:
步骤:
1、通过以下命令启动 jar文件:(端口5005可以修改)
shell
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 [你的 jar 文件]
这一步需要打开Terminal这个窗口,可以使用快捷键(Alt +F12)这里可以直接执行命令,如下:
2、创建一个"Remote" 执行配置:
3、保留 默认配置点击 "Apply" 和 "Ok"
4、因为你的Jar文件已经在执行了, 所以可以直接开始 debug:
关键点:IDEA源码必须与待调试jar包保持一致,切记!!!不然进不了debug模式!!!!
如果出现以下错误,那是因为第一步没有执行jar包
Unable to open debgger port(localhost:5005):java.net.ConnectException"Connection refused:connect"
后记:
这个方法也可以用来调试部署到远程服务器的Jar包,操作同上,要求线上服务器以下方式进行启动
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 [你的 jar 文件]
不过,一般正式的公司对发布有着严格的规范,一般不允许在线去debug代码,容易影响线上用户。
到此这篇关于优雅的调试jar包的文章就介绍到这了,更多相关优雅调试jar包内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!