1. 程式人生 > >jdk7啟動時報“java.lang.VerifyError:Expecting a stackmap frame at branch target”

jdk7啟動時報“java.lang.VerifyError:Expecting a stackmap frame at branch target”

alt html 分享圖片 eclipse ack sch sta 代碼 編譯

報異常的方法內使用了Java 7的新特性:自動資源釋放,類似於try(){},即在try後面跟一括號,在括號裏面對一些資源賦值,try裏面的代碼塊執行完畢之後會自動釋放try後面的括號中聲明的資源。

  Java 7 會使用新的Class類型校驗器,新的類型校驗器將老的校驗器分為兩步:

      1、類型推斷

      2、類型校驗

    新的類型校驗器通過在javac編譯時嵌入類型信息到bytecode中,省略了類型推斷這一步,從而提升了classloader的性能。  

  Classload順序(供參考): load -> verify -> prepare -> resove -> init

  

解決辦法:在運行jvm參數設置 -XX:-UseSplitVerifier

如eclipse中:

技術分享圖片

轉載自:http://www.cnblogs.com/gisblogs/p/5748394.html

jdk7啟動時報“java.lang.VerifyError:Expecting a stackmap frame at branch target”