java.lang.VerifyError: Expecting a stackmap frame at branch target 16 类似java异常

来源:互联网 发布:ipad比下软件 编辑:程序博客网 时间:2024/05/20 05:06

报异常的方法内使用了Java 7的新特性:自动资源释放,类似于try(){},即在try后面跟一括号,在括号里面对一些资源赋值,try里面的代码块执行完毕之后会自动释放try后面的括号中声明的资源。

Java 7 会使用新的Class类型校验器,新的类型校验器将老的校验器分为两步:

1、类型推断

2、类型校验

新的类型校验器通过在javac编译时嵌入类型信息到bytecode中,省略了类型推断这一步,从而提升了classloader的性能。  

Classload顺序(供参考):  load -> verify -> prepare -> resove -> init  

解决办法:在运行jvm参数设置 -XX:-UseSplitVerifier

As a workaround you can add -noverify to the JVM arguments in order to disable verification. In Java 7 it was also possible to use -XX:-UseSplitVerifier to use the less strict verification method, but that option was removed in Java 8.

so If you are using java 1.8, remove XX:-UseSplitVerifier and use -noverify in your JVM properties.


也可以查看 https://stackoverflow.com/questions/26733946/java-lang-verifyerror-expecting-a-stackmap-frame-at-branch-target

阅读全文
0 0
原创粉丝点击