jar包日志去哪了?

简述:

最近调试logback日志,在IDEA中可以正常显示并输出日志,可是打成jar包后就不显示日志,一度奇怪。

 

如果是在IDEA中,倒是可以看看打印日志这个语句是否执行,可是现在已经打成JAR包了,也没有办法进行调试。

于是我尝试右键JAR包,用360压缩打开,发现果然可以找到打印日志的那个类。

 

关于为什么JAR格式文件能够被压缩软件打开,是因为JAR格式也是一种压缩格式。

JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

更多点击https://baike.baidu.com/item/JAR/919533?fr=aladdin

 

 

 

于是我把class文件拷贝出来,然后右键用EditPlus打开,因为class文件是经过JVM编译过的字节码文件,所以看到的是一堆乱码。

 

 

于是我百度怎么查看class文件。方法如下:

 

可是经过编译过得class文件实际上是这个样子的:看起来有点像汇编,所以这样排查起来也有点费劲。

 

这样排查起来也不容易,因此我就想到了强大的编译工具IDEA,只要把class文件把IDEA中一放,IDEA就会给你反编译出原来的内容,哈哈是不是很强大。

发现class文件中果然没有日志输出那条语句,所以你在运行JAR包的时候也就不会输出了。

 

 

但是我源码中其实是有的,所以考虑可能是maven打包有缓存之类,于是我刷新maven,重新打包部署,在拿出class文件一看,果然有日志输出了。

 

这样一来,问题就解决了。(IDEA果然强大!)

 

总结:

当打成jar包时,发现结果与预期不一致,不妨打开jar包文件,找到对应的class文件,直接扔到IDEA中,就可以看到打包后的源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值