【发布时间】:2011-08-03 15:00:29
【问题描述】:
我已经下载了名为 json-lib-2.4-jdk13.jar 的所谓最新的 JDK 1.3 兼容二进制文件,但出现以下错误。
Exception in thread "main" java.lang.NoSuchMethodError: java.lang.ThreadLocal: method remove()V not found
at net.sf.json.AbstractJSON.removeInstance(AbstractJSON.java:221)
我检查了 JDK 1.4 API 并注意到 ThreadLocal 上的 remove 方法确实不受支持,并且仅在 JDK 1.5 中添加
违规代码是:
protected static void removeInstance(Object instance)
{
Set set = getCycleSet();
set.remove(instance);
if (set.size() == 0)
cycleSet.remove();
}
有谁知道我是否在这里遗漏了一些明显的东西,或者需要额外下载或其他什么?
【问题讨论】:
-
Java 1.3 和 1.4 已经很老了。你应该考虑升级。是的,现在有点工作,但这比以后遇到一个主要的 JDK 错误(或操作系统不兼容)要好得多,在这一点上你完全不走运
-
@Adam 是的,当然你是对的。我正在处理一些遗留代码,现在没有更新 jdk 的奢侈
-
@alphazero。谢谢你的帖子。我的问题是错误地说它是 Set 中缺少的 remove() 实际上问题出在 CylceSet 扩展的 ThreadLocal 上。我已经更新了我的问题
-
这是库中的一个错误。查看答案。