小知识(class文件查看jdk版本,beyond,could not find setter)
最近几天工作当中遇到了一些问题,所以记录下来。
1.如何查看class文件的sdk版本
2.beyond compare比对文件
3.Could not find setter for native_place on class com.tonmx.platform.bean.FaceView
报错的解决方法
1.如何查看class文件的sdk版本
背景:目前公司环境比较多,有2个项目,A项目没有代码(只有已打好的war包,客户用的),B项目是我的开发环境(有代码).在B上改了一个接口,然后marven clean,marven install后,准备把打包后的class对应那接口文件阀盖掉A项目。结果发现A和B项目当时编译的jdk版本不对。要查看class文件用的是JDK多少,可以使用Editplus,打开后查看第一行的前8位
class文件查看jdk版本
1、事先编译好一个class文件,如:TestVersion.class
2、使用UltraEdit或Editplus打开class文件,我这里使用的editplus,如图:
3、打开时Encoding选择Hex viewer,以16进制方式显示
4、打开文件的内容如下:
5、只看第一行数据,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 33 是jdk的版本号,如我这里使用的是jdk1.7
jdk版本号对应关系如下:
版本号
对应十进制
jdk版本号
2E 46 jdk1.2
2F 47 jdk1.3
30 48 jdk1.4
31 49 jdk1.5
32 50 jdk1.6
33 51 jdk1.7
34 52 jdk1.8
所以我编译的是jdk 1.8
2.beyond compare比对工具
这款工具主要是一个比对软件,你可以把他当做一个本地的git版本控制器使用,还是非常好用的。不过我用的是试用版,破解版目前还没找到,亲们找到发我一下,感激不尽。
beyond compare官网下载地址
在线比对工具
这个还比较好用,虽然功能没本地软件强大,但是他是网页版,无需安装
3.新建视图后,在本地映射视图上的字段后,报
Could not find setter for native_place on class com.tonmx.platform.bean.FaceView