java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/Co
来源:互联网 发布:linux 卸载u盘 编辑:程序博客网 时间:2024/04/30 12:27
完整异常信息:
java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView
意思是ConcurrentHashMap中没有KeySetView keySet();方法
而KeySetView keySet()是jdk1.8的方法,若本身项目开发的时候是基于jdk1.8进行开发的,那么在部署环境也应该注意环境的jdk是否是1.8版本的。
如果你部署环境jdk1.7的,并且你也是希望使用jdk1.7的,那么你应该将你本地开发环境的jdk也配置成1.7,这样ConcurrentHashMap中的方法才会是Set keySet()。
本人遇到的情况:
1.本地开发使用eclipse开发,但是eclipse中的版本是jdk1.8(一直没注意到),使用keySet()方法进行遍历ConcurrentHashMap。
2.部署服务到测试环境,测试环境是jdk1.7的,ConcurrentHashMap只有Set keySet()方法
3.经1、2中描述,在测试环境自然是抛出
java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView
4.利用java decompiler反编译工具,也能看到代码中开头如下:
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentHashMap.KeySetView;
也表明了该类使用了jdk1.8的KeySetView keySet()方法
5.因此只需将eclipse的jdk1.8更改为jdk1.7重新编译或者使用其他方法遍历ConcurrentHashMap,便可以解决这个问题。
- java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/Co
- 异常java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
- java.util.concurrent.ConcurrentHashMap
- java.util.concurrent.ConcurrentHashMap
- java.util.concurrent.ConcurrentHashMap
- java.util.concurrent 之ConcurrentHashMap
- Error: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get
- java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors
- Java多线程工具包java.util.concurrent---ConcurrentHashMap
- java.lang.NoSuchMethodError ljava/util/list
- java.util.concurrent 之ConcurrentHashMap 源码分析
- java.util.concurrent.ExecutionException: java.lang.RuntimeException
- java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException
- 【java】 java.util.concurrent
- java.util.concurrent.CyclicBarrier
- java.util.concurrent 学习
- java.util.concurrent包
- java.util.concurrent 架构
- 警惕UNIX下的LD_PRELOAD环境变量
- maven项目移除Maven Dependencies后如何在添加进去
- Slider Revolution
- 2016网易实习生招聘笔试题:已知一般App版本为1.0.0/1.0.1/1.2.3,其符合a.b.c的规则。将排序不规则,约为100w个版本号进行从小到大排序
- 现场六大问题分析与对策
- java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/Co
- 支付宝红包稳定性实践与思考--讲座思考
- [cqoi2015]选数 解题报告
- GooglePlay内购In-app Billing 总结~
- 关于检测输入正误的提示的研究
- 各种浏览器全屏模式的方法、属性和事件介绍(转)
- Linux 开发工具学习(gcc 、gdb和makefile)
- 二分图的判断 bfs+dfs两种搜索方法判断
- NASM/MASM