使用检测的JDK7编译代码存在已知的兼容性问题.至于http://www.oracle.com/technetwork/java/javase/compatibility-417013.html
版本号为51的类文件使用类型检查验证程序进行独占验证,因此这些方法在适当时必须具有StackMapTable属性.对于版本为50的类文件,如果文件中的堆栈映射丢失或不正确,Hotspot JVM将(并继续)故障转移到类型推断验证程序.对于版本为51的类文件(Java SE 7的默认版本),不会发生此故障转移行为.修改版本51类文件中的字节码的任何工具必须确保更新stackmap信息以与字节码一致以通过验证.
解决方案是使用-XX:-UseSplitVerifier如下所述:https:
//community.oracle.com/blogs/fabriziogiudici/2012/05/07/understanding-subtle-new-behaviours-jdk-7
它有多安全?我想Oracle已将此检查置于原因之中.如果我不使用它,我可能会冒一些其他问题.
使用后果可能是什么-XX:-UseSplitVerifier?
谢谢,
彼得.