首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Guava升级到最新的23.5获取用于Preconditions.checkArgument的NoSuchMethodError

将Guava升级到最新的23.5获取用于Preconditions.checkArgument的NoSuchMethodError
EN

Stack Overflow用户
提问于 2017-12-20 15:27:55
回答 2查看 667关注 0票数 0

在将Guava从18.0升级到最新的23.5-jre时,我遇到了如下异常

代码语言:javascript
复制
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
    at com.van.common.VanExecutors.getSpec(VanExecutors.java:91)
    at com.van.common.VanExecutors.newFixedSizeExecutor(VanExecutors.java:114)
    at com.van.storage.config.ConfigStoreFactory.getOrCreateUncachedStore(ConfigStoreFactory.java:56)
    at com.van.storage.config.ConfigStoreFactory.getOrCreateStore(ConfigStoreFactory.java:74)
    at com.van.storage.config.PolicyManager.loadFromSystemProperties(PolicyManager.java:79)
    at com.van.tools.metric.HbaseMetricStoreSetup.main(HbaseMetricStoreSetup.java:25)

相关代码

代码语言:javascript
复制
private ExecutorSpec getSpec(String executorName) {
        Preconditions.checkArgument(isValid(), "Not initialized");
        Preconditions.checkArgument(NullOrEmpty.isFalse(executorName), "No executor name given");
        Preconditions.checkArgument(POOL_NAME_PATTERN.matcher(executorName).matches(), "Executor name %s must end with -exec", executorName);
        for (ExecutorSpec spec : executorsSpec.getExecutorSpecList()) {
            if (spec.getName().equalsIgnoreCase(executorName)) return spec;
        }
        return null;
    }

根据堆栈跟踪线91是最后的前提检查。

有没有人能告诉我出了什么问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-25 13:08:03

为了解决这个问题,我在前面加上了CLASSPATH ( export CLASSPATH=<guava-23.5>;$CLASSPATH )和Guava23.5 jre。

票数 0
EN

Stack Overflow用户

发布于 2017-12-20 15:35:52

在我看来,方法isValid()返回一个String (这是不是改变了?)而是一个boolean is expected (并且是在release 18 too

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

https://stackoverflow.com/questions/47900817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档