日期:2014-05-20  浏览次数:20815 次

字节码.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 版来编译该文件。

也就是说你下的反编译工具太老了,应该去找个更新一点的。