mre*_*mre 33 java eclipse jvm java-7
当我使用JDK 7在eclipse indigo中编译我的项目时,我得到以下错误对话框

使用以下堆栈跟踪
Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 32 in method ... at offset 0
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我在这里发现了一个相关的bug 并使用了建议的使用jvm选项的解决方法,-XX:-UseSplitVerifier尽管它有效,但这个bug仍然让我感到困惑.
有谁知道为什么会这样,为什么解决方法......有效?
该项目使用JDK 6进行编译.
Von*_*onC 27
错误353467谈到"使用-XX:-UseSplitVerifier激活旧验证程序".
这与JDK TM 6采用指南一致,该指南将该选项描述为:
传统的验证者可以用
-XX:-UseSplitVerifier旗帜强制.
StackMapTable版本50.0类文件的缺少或不正确的属性可能导致VerifyError异常.
在版本50.0类文件中重写字节码但未正确更新的工具StackMapTable可能无法验证并触发异常.
所以2011-10-03的评论确实指出:
如果类是Java7,AspectJ现在会自动激活先前的可选设置以创建堆栈映射.
| 归档时间: |
|
| 查看次数: |
27104 次 |
| 最近记录: |