环境:linux , tomcat7 , jdk1.7, spring
现象:单独替换一个class , 重启tomcat ,正常启动,日志不报错;请求接口,日志没反应,接口返回404.
结论:替换的class 是1.8编译的,与服务器整体程序编辑jdk不一致。
检查方法:
如何通过class 查看jdk版本?
我们知道class文件是通过javac编译生成的,如果我们想知道是java的那个版本生成的,该怎么做?
很简单,Linux下只要使用od命令,如下:
od -x OutputController.class |head -n 20
前四个字节为固定的cafe babe,接下来的四个字节为次版本号(0000)和主版本号(00033)。
33:JDK1.7
32:JDK1.6
31:JDK1.5
30:JDK1.4
2F:JDK1.3
由此可知,该class是通过jdk1.7生成的。