fat-jar调试踩坑
前言
因为祥云杯上有一道Java题目,且当时苦与不会jar包调试。所以花了很长时间。
jar包远程调试
关于远程调试的参数。
当我们配好运行配置的时候
这里就已经显示了要加的JVM参数
此时到命令行里运行
java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" -jar web.jar
然后再点击调试。如果显示:
那么就可以调试。
但是此时,你是不能进入断点的。因为你本地没有web.jar的代码。
给项目文件加一个lib文件夹
把所有jar包(这里指的是web.jar里面本来的jar包)都放进去
这时候我们自己做一个"web.jar"
将web.jar解压,然后进入这个地方,打包这个classes
把classes.zip改名为web.jar塞进上面的lib文件夹中。
这样做的目的是为了保证lib文件夹里的内容和远程一样,可以进入顺利进入断点。
然后在这里把刚才的lib文件夹加入进来。
然后打个断点发个包就进入了我们自己压缩的jar包
当然反序列化点也没什么问题
调试信息也出现在我们的shell中
这样就达到了调试fat-jar包的目的。