首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java.lang.VerifyError:在分支目标JDK1.7处需要堆栈映射帧

java.lang.VerifyError:在分支目标JDK1.7处需要堆栈映射帧
EN

Stack Overflow用户
提问于 2013-02-27 21:35:40
回答 7查看 115.3K关注 0票数 89

升级到JDK 1.7后,我得到以下异常:

代码语言:javascript
运行
AI代码解释
复制
java.lang.VerifyError: Expecting a stackmap frame at branch target 71 in method com.abc.domain.myPackage.MyClass$JaxbAccessorM_getDescription_setDescription_java_lang_String.get(Ljava/lang/Object;)Ljava/lang/Object; at offset 20
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
    at java.lang.Class.getConstructor0(Class.java:2723)
    at java.lang.Class.newInstance0(Class.java:345)
    at java.lang.Class.newInstance(Class.java:327)
    at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:184)
    at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:129)
    at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection.optimize(Accessor.java:384)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:72)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:166)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:494)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:311)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:126)
    at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1148)
    at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:130)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:248)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:235)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:445)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:637)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:584)
    at com.abc.domain.myPackage.MyClass.marshalFacetsTest(MyClass.java:73)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:128)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1203)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1128)
    at org.testng.TestNG.run(TestNG.java:1036)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
EN

回答 7

Stack Overflow用户

发布于 2013-02-27 21:40:50

Java7引入了更严格的验证,并稍微更改了类的格式-以包含用于验证代码是否正确的堆栈映射。您看到的异常意味着某些方法没有有效的堆栈映射。

Java版本或字节码插装都是罪魁祸首。通常,这意味着应用程序使用的库生成的无效字节码没有通过更严格的验证。因此,除了将其作为错误报告给库之外,开发人员无法完成任何其他工作。

作为一种变通方法,您可以将-noverify添加到JVM参数中以禁用验证。在Java7中,也可以使用-XX:-UseSplitVerifier来使用不太严格的验证方法,但在Java8中删除了该选项。

票数 175
EN

Stack Overflow用户

发布于 2016-01-28 11:16:08

如果您使用的是java1.8,请删除XX:-UseSplitVerifier并在JVM属性中使用-noverify

票数 15
EN

Stack Overflow用户

发布于 2015-02-03 02:21:35

我遇到了这个问题,并尝试使用标志-noverify,这真的很有效。这是因为有了新的字节码验证器。所以旗帜应该真的起作用了。我使用的是JDK 1.7。

注意:如果您使用的是JDK 1.8,这将不起作用

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15122890

复制
相关文章
C/CPP函数括号{} | 栈帧 | 堆栈 | 栈变量
由上可见{}在汇编指令中发挥的作用可不少,函数之间的随意调用和顺利收场都离不开它们。
CtrlX
2022/10/04
7260
C/CPP函数括号{} | 栈帧 | 堆栈 | 栈变量
在指定位置按照需要在接边处进行融合
想法来源于某技术交流群,有朋友问起,如何可以进行这些数据的合并?这些数据,其实就是互联网电子地图中的建筑物轮廓,由于切片等原因,下载的数据都是分块的,而在实际使用中往往需要进行融合。
数据处理与分析
2019/07/31
6332
在指定位置按照需要在接边处进行融合
在奇点处爆发
你打开了电脑,Cortana推送给你今天最新的天气信息,地图app给你自动规划了最快的上班路线,这条路线避开了交通拥堵的路段。上班路上无聊地打开手机,Siri推送给你最新的资讯是:北京交警认为李彦宏驾驶百度研发的无人驾驶汽车上路属于违法行为;谷歌和微软在发布会上同时宣布,windows和安卓的时代已经过去了,他们未来的重点是人工智能(AI)。
iOSDevLog
2018/07/25
4240
在奇点处爆发
textarea 在光标处插入文字
效果演示 欢迎访问cssfirefly.cnblogs.com html: <textarea id="text" style="width:500px;height:80px;">欢迎访问http://cssfirefly.cnblogs.com/</textarea> <input type="button" value="插入文字" onclick="insertText(document.getElementById('text'),' NewWord ')"> <input type="but
deepcc
2018/05/16
1.2K0
HashMap 在 JDK1.7 和 JDK1.8 的区别
在平常我们用HashMap的时候,HashMap里面存储的key是具有良好的hash算法的key(比如String、Integer等包装类),冲突几率自然微乎其微,此时链表几乎不会转化为红黑树,但是当key为我们自定义的对象时,我们可能采用了不好的hash算法,使HashMap中key的冲突率极高,但是这时 HashMap为了保证高速的查找效率,就引入了红黑树来优化查询了。
Li_XiaoJin
2022/06/10
1K0
HashMap 在 JDK1.7 和 JDK1.8 的区别
软件逆向基础
动态分析技术:指的是使用调试工具加载程序并运行。 随着程序运行,调试者可以随时中断目标的指令流程,以便观察相关计算的结果和当前的设备情况。 静态分析技术:是相对于动态分析而言的。 由于在实际分析中,很多场合不方便运行目标(例如病毒程序,设备不兼容,软件的单独某一模块)。那么这个时候静态分析技术就该上场了!
HACK学习
2019/08/06
1.3K0
软件逆向基础
关于远程分支你需要知道的
自动创建一个跟踪 origin/master 的 master 分支。若 clone 的时候想跟踪别的分支:
前端黑板报
2022/06/13
3230
关于远程分支你需要知道的
【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )
在 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 ) 博客的基础上 , 在远程仓库发起分支合并操作 ;
韩曙亮
2023/03/30
2.4K0
【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )
HashMap在JDK1.7以及JDK1.8的区别?
底层是以数组+单链表的形式进行存储的! 1.1.实例化:在底层直接创建Entry[]一维空数组,在第一次put元素时进行初始化和计算容量,数组长度为大于等于给定Size的最小2的次幂。 1.2.插入键值对: 当调用put(key,value)时,经历以下步骤: ①计算key的哈希值(详见我的之前一篇写HashMap底层哈希值计算的文章),然后将哈希值与数组长度-1进行按位与运算,得到应该存储的数组下标索引。 ②如果该数组位置没有Entry,则直接添加即可。 ③若该数组位置已经有Entry了,则计算key与该位置上的其他key的hash值,如果hash值都不相同,则采用头插法添加(key,value)到该数组位置。若与某个Entry中的key的hash值相同,则进一步通过equals方法进行比较,若equals相同则覆盖,若不同则采用头插法添加(key,value)到该数组位置。 1.3.扩容方式 先进行条件判断,key是否为空等等。然后准备进行Entry添加。 当数组的长度大于等于threshold且要插入的地方不为null空值时,进行扩容为原来的2倍。 扩容后需要重新计算要插入元素的hash值,并且计算在新数组长度下的索引。 1.4.Hash算法: 1.7版本会进行判断,当要插入的键值为字符串时,选用其他的hash值计算方法。并且hash值计算完之后采用复杂的避免hash碰撞的运算。hash值没有用final修饰,在进行扩容后可以重新计算。
玖柒的小窝
2021/12/11
5930
[1194]GitLab在web端合并分支
左侧菜单选择 “Merge Requests” 项,右上角点击按钮 “New merge request”。
周小董
2023/10/10
2.2K0
[1194]GitLab在web端合并分支
使用Salt States在Minion上配置LAMP堆栈
本教程将配置 Minion 的 LAMP 堆栈,并进一步使用 Salt States。本教程是为 Debian 8 编写的,但可以很容易地针对其他 Linux 发行版进行调整。在开始本指南之前,您将需要一个有效的 Salt master和minion 配置。如果您需要设置该先决条件,请参阅我们的 Salt 安装指南以开始使用。
LPD6375
2018/08/29
8190
限制堆栈的堆栈排序
原文题目:Stack sorting with restricted stacks
Jarvis Cocker
2019/07/19
1.2K0
JVM运行时数据区知多少
java引以为豪的就是内存自动化管理,不需要像C、C++等一样需要开发者手动获取内存、释放内存,对内存进行操作等,java在这方面做的非常好、非常方便。所以,了解java内存区域是怎么划分的是非常有必要的,面试的时候也是经常会问到的。
索码理
2022/12/28
3480
JVM运行时数据区知多少
通过鼠标点击在点击处出现图片
好多人应该都玩过4399小游戏里的找不同游戏吧,当你点对的时候他会在你鼠标点击处出现一个动画,点击错的时候也会出现相应的图片。下面我来说一下在网页里这种效果怎么实现吧。
OECOM
2020/07/01
4.2K0
忘记切换分支,不小心在其他分支上修改了很多代码,如何把这些修改拷贝到目标分支?
原文(有修改): https://developer.51cto.com/art/202107/669695.htm 我们知道,在使用 Git 的时候,应该要正确使用它的分支(Branch)功能。不同
marsggbo
2022/05/19
2.4K0
C# 在 webBrowser 光标处插入 html代码 .
private void BtnInsertMedia_Click(object sender, EventArgs e)         {             InWord frm = new InWord("请填入视频地址(后缀必须是.swf):");             frm.ShowDialog();             if (frm.Value != null && frm.Value != "")             {                 IHTMLDocum
跟着阿笨一起玩NET
2018/09/18
1.4K0
堆栈
堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。
王小明_HIT
2020/04/21
1.1K0
堆栈
[视频编码] 视频编码的三种帧:I帧,B帧,P帧
在视频压缩编码中,所有的帧被分成了三个种类,I帧,B帧和P帧,其实就是Intra-Prediction帧,Bi-prediction帧和Prediction帧。顾名思义,就是帧内预测帧,双向预测帧以及(单向)预测帧。
轻舞飞扬SR
2021/02/24
2.3K0
JDK1.7新特性
1 对集合类的语言支持;  2 自动资源管理;  3 改进的通用实例创建类型推断;  4 数字字面量下划线支持;  5 switch中使用string;  6 二进制字面量;  7 简化可变参数方法调用。     下面我们来仔细看一下这7大新功能:  1 对集合类的语言支持        Java将包含对创建集合类的第一类语言支持。这意味着集合类的创建可以像Ruby和Perl那样了。        原本需要这样:           List<String> list = new ArrayList<String>();           list.add("item");           String item = list.get(0);           Set<String> set = new HashSet<String>();           set.add("item");           Map<String, Integer> map = new HashMap<String, Integer>();           map.put("key", 1);           int value = map.get("key");        现在你可以这样:           List<String> list = ["item"];           String item = list[0];           Set<String> set = {"item"};           Map<String, Integer> map = {"key" : 1};           int value = map["key"];        这些集合是不可变的。  2 自动资源管理        Java中某些资源是需要手动关闭的,如InputStream,Writes,Sockets,Sql classes等。这个新的语言特性允许try语句本身申请更多的资源,     这些资源作用于try代码块,并自动关闭。        这个:           BufferedReader br = new BufferedReader(new FileReader(path));           try {           return br.readLine();                 } finally {                     br.close();           }        变成了这个:            try (BufferedReader br = new BufferedReader(new FileReader(path)) {               return br.readLine();            }        你可以定义关闭多个资源:           try (               InputStream in = new FileInputStream(src);               OutputStream out = new FileOutputStream(dest))           {           // code           }        为了支持这个行为,所有可关闭的类将被修改为可以实现一个Closable(可关闭的)接口。  3 增强的对通用实例创建(diamond)的类型推断        类型推断是一个特殊的烦恼,下面的代码:           Map<String, List<String>> anagrams = new HashMap<String, List<String>>();        通过类型推断后变成:           Map<String, List<String>> anagrams = new HashMap<>();        这个<>被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。        很长的数字可读性不好,在Java 7中可以使用下划线分隔长int以及long了,如:           int one_million = 1_000_000;     运算时先去除下划线,如:1_1 * 10 = 110,120 – 1_0 = 110    5 switch中使用string       以前你在switch中只能使用number或enum。现在你可以使用string了:           String s = ...           switch(s) { 
用户3003813
2018/09/06
1.3K0
点击加载更多

相似问题

java.lang.VerifyError:在分支目标JDK1.7处需要堆栈映射帧

91

java.lang.VerifyError:分支目标处需要堆栈映射帧

22

java.lang.VerifyError:在具有目标站点的分支目标JDK1.7处需要堆栈映射帧

10

java.lang.VerifyError:在分支目标29处需要堆栈映射帧

127

java.lang.VerifyError:需要分支目标70处的堆栈映射帧异常详细信息

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文