jdk7启动时报“java.lang.VerifyError:Expecting a stackmap frame at branch target”

Posted 蓝色土耳其

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk7启动时报“java.lang.VerifyError:Expecting a stackmap frame at branch target”相关的知识,希望对你有一定的参考价值。

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

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

      1、类型推断

      2、类型校验

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

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

  

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

如eclipse中:

 

在tomcat中配置时,catalina.bat中增加 set JAVA_OPTS=-XX:-UseSplitVerifier

 

 

 

转载自:http://www.cnblogs.com/gisblogs/p/5748394.html

以上是关于jdk7启动时报“java.lang.VerifyError:Expecting a stackmap frame at branch target”的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat启动时报内存溢出无法正常启动

C++程序启动时报“0xC000007B”无法启动的问题排查

启动RabbitMq服务时报错

启动 mysql 时报错

CentOS启动时报错修复

k8s 启动kubelet时报错