NoSuchMethodError:com.google.common.cache.CacheBuilder.maximumSize(J)

时间:2017-09-22 18:47:40

标签: java caching plugins bukkit

我似乎遇到的问题只适用于我的一个Minecraft插件的1个用户。

[15:54:14 ERROR]: Error occurred while enabling <Plugin> v1.0.8 (Is it up to date?) java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.maximumSize(J)Lcom/google/common/cache/CacheBuilder;

是否有任何理由说明为什么会发生这种情况,或者我是否能以某种方式过来?

我的代码:

private LoadingCache<String, String> profileCache = CacheBuilder.newBuilder().
        maximumSize(500).
        expireAfterWrite(4, TimeUnit.HOURS).
        build(new CacheLoader<String, String>() {
            public String load(String name) {
                try {
                    return getProfileJson(name);
                } catch (IOException e) {
                    Bukkit.getLogger().info("Error, " + e.getLocalizedMessage() + ".");
                }
                return null;
            }
        });

2 个答案:

答案 0 :(得分:1)

您需要将库包含在导出的jar中。默认情况下,它们不包含在导出的Jar中,因为IDE假定它们在运行时存在,而不是它们。

请参阅here了解Gradle和here了解Maven。

答案 1 :(得分:0)

java.lang.NoSuchMethodError在运行时抛出,因为JVM在引用的类中找不到该方法。这通常是因为您使用不同版本的第三方库来编译和运行应用程序。

检查用于编译的库的版本以及用于运行代码的版本,并确保它们匹配或至少兼容。