字节码.Class文件有版本分别吗?NetBeans中的源代码级别是什么意思?
刚才找了个Java 反编译工具,接果有些Class文件可以反编译出源代码,有些就不行,提示说 "Class file version mismatch " ,这个是怎么回事?
NetBeans项目属性中有个源代码级别,选项包括1.2 1.3 1.4 1.5 1.6 似乎是JDK的版本,不知这个与Class file version有关么?
------解决方案--------------------每个级别的语言有自己的规范,
比如泛型就是1.5之后出现的,
你设置了1.4,然后又使用了泛型,这个就有冲突,就会编译不过
------解决方案--------------------好像是有版本区分的,不过是编译器的版本,好像是什么 49.0 之类的。
你第二段说到是编译的兼容级别,与版本没有什么关系,其就像使用 javac -source 1.2 XXX.java 就表示采用 JDK 1.2 版来编译该文件。
也就是说你下的反编译工具太老了,应该去找个更新一点的。