Java7 ClassFormatError:创建对象时非法的局部变量表长度
我在执行以下代码时遇到这个奇怪的错误。
EncoderRequest encoderRequest = new EncoderRequest(sid,appTxnId,pfid,transactionType,"",isUpdatetype9,true);
我检查了所有参数值是否有效。 我正在使用java7平台。 任何人都可以遇到这种情况,请帮忙。
以下是我得到的stacktrace的一部分。
Caused by: java.lang.ClassFormatError: Illegal local variable table length 48 in method com.cmc.facts.encoder.EncoderRequest.(JLjava/lang/String;Ljava/lang/Long;Lcom/cmc/facts/enums/TransactionType;Ljava/lang/String;ZZ)V at com.cmc.facts.nist.NistReaderModel.preprossingOfNistFile(NistReaderModel.java:180) at com.cmc.facts.action.interstate.InterStateAction.uploadFIIF(InterStateAction.java:645) ... 115 more
在Junit测试和类似的测试中,先前有过相同错误的报告。
对于他们来说,添加JVM arg -XX:-UseSplitVerifier
似乎有效
看看这篇文章
您也可以执行此配置:在jvg args中添加-noverify
对于ant配置,你可以这样做:
您可以点击链接了解我们为什么需要这样做的更多详细信息。