Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkAr

本文讲述了JavaNoSuchMethodError异常,特别是当调用com.google.common.base.Preconditions.checkArgument时的问题。原因可能包括Guava库版本不匹配、类路径问题或构建工具配置错误。提供了检查库版本、清理项目、更新依赖和修复类路径等解决方案。
摘要由CSDN通过智能技术生成

java.lang.NoSuchMethodError 异常通常表示正在运行的Java代码尝试调用一个不存在的方法。在这种情况下,异常信息指出 com.google.common.base.Preconditions.checkArgument 方法不存在或者方法签名不匹配。

com.google.common.base.Preconditions 是Google Guava库中的一个类,提供了一系列静态方法来进行简单的参数验证。checkArgument 方法是其中的一个方法,用于在方法参数不符合特定条件时抛出异常。

这个错误可能是由以下原因引起的:

  1. Guava库版本不匹配:如果你的项目依赖于特定版本的Guava库,而你的代码或者构建环境中使用了不同版本的Guava库,可能会导致方法签名不匹配。确保你的项目中只包含一个版本的Guava库,并且该版本的库包含了你需要的方法。

  2. 类路径问题:可能是因为Guava库没有被正确地添加到类路径中,或者类路径中有多个版本的Guava库,导致运行时找不到正确的方法。

  3. 构建工具配置错误:如果你使用Maven或Gradle等构建工具,可能是构建配置文件(如pom.xml或build.gradle)中Guava库的依赖配置有误。

为了解决这个问题,你可以尝试以下步骤:

  • 检查Guava库的版本:确认你的项目中使用的Guava库版本是否与你的代码相匹配。如果你的项目依赖于特定版本的Guava库,确保没有其他库或模块引入了不同版本的Guava。

  • 检查类路径:确保Guava库已经正确地添加到了类路径中。如果你使用的是IDE(如IntelliJ IDEA或Eclipse),检查项目设置中的依赖库是否正确。

  • 清理和重建项目:如果你使用的是构建工具,尝试清理并重建你的项目。对于Maven,可以使用mvn clean install命令;对于Gradle,可以使用gradle clean build命令。

  • 检查构建配置文件:如果你使用Maven或Gradle,检查pom.xml或build.gradle文件中的Guava依赖是否正确,并且没有引入冲突的版本。

  • 更新Guava库:如果你的项目允许,尝试更新到最新版本的Guava库,或者至少是一个包含了你需要的checkArgument方法的版本。

我所采用的方式是

删除hive中低版本的guava-19.0.jar包,将hadoop中的guava-27.0-jre.jar复制到hive的lib目录下即可

该包在hadoop中存储的位置是hadoop\share\hadoop\common\lib

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值