今天项目在我这里运行报Inconsistent stackmap frames at branch target 这样的VerifyError错,但是同事那里没有,一步步检查,最终发现是Class..getDeclaredMethods0抛出的异常,原因大概是因为我用的是JDK1.7,而同事用的是JDK1.6,太底层了,不会解决了,google了,得到以下类似的网页:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=351653
https://bugs.eclipse.org/bugs/show_bug.cgi?id=352145
连回贴中也有人奇怪,这样的问题居然以前没有发现过……
太底层了,只能试一下更新一下JDK1.7的版本,看能否解决……
实在不行,换回JDK1.6了。
在Linux下切换办法如下:
在终端运行:
alternatives --display java
可以看到当前Java的版本等信息,如果没有想要的版本,可通过类似下面的代码来添加:
alternatives --install /usr/bin/java java /usr/share/jdk1.6.0_02/bin/java 300
看明白后,运行:
alternatives --config java
就可以选择切换了。
发现本机上的JDK1.7还比较顽固,不管怎么切换,java -version都还是他,于是决定卸载!
rpm -qa|grep jdk
看到:
jdk-1.7.0-fcs.i586
java-1.6.0-openjdk-devel-1.6.0.0-54.1.9.9.fc14.i686
java-1.6.0-openjdk-javadoc-1.6.0.0-54.1.9.9.fc14.i686
java-1.6.0-openjdk-1.6.0.0-54.1.9.9.fc14.i686
于是执行卸载命令:
rpm -e jdk-1.7.0-fcs.i586