由於一些歷史原因,JDK6和JDK7可能會出現一些字節碼驗證的問題。完整的異常信息類似於
java.lang.VerifyError: Expecting a stackmap frame at branch target 11 in method com.evernotetodoweb.server.MockOAuthRequestServer.<init>()V
解決方案有兩中,一、換回JDK6 二、運行時加入-XX:-UseSplitVerifier參數
這個問題我在TeamCity中使用EMMA時遇到。修改后的ANT配置如下
1: <junit printsummary="true">
2: <classpath>
3: <pathelement path="${test.build}" />
4: <path refid="library.all" />
5: </classpath>
6: <batchtest fork="yes">
7: <fileset dir="${test.src}">
8: <include name="**/Test*.java" />
9: </fileset>
10: </batchtest>
11: <jvmarg value="-XX:-UseSplitVerifier"/>
12: </junit>