今天在编写一个简单spi 应用demo的时候,在编译时总有一个其他的错误,如下:

 ERROR Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project userloginspi: Fatal error compiling: java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.toImmutableSet()Ljava/util/stream/Collector; -> [Help 1] (org.apache.maven.cli.MavenCli:1091)

因为这个插件一直使用 ,而且类似的代码也写过不可能出问题的,首先怀疑的是maven 工具,但是发现没问题,这个错误的提示实际上是一个guava 包版本的问题,但是项目依赖的guava 已经包含功能了,而且很高了,尝试过以下几个调试

解决流程

  • maven 构建提启用调试
    添加-X 发现依赖的包包含代码,没有问题
  • 只能google了
    大家的说法都是guava 版本,突然看到有人说,guava 已经在classpath了,实际上错误也符合,然后突然想起,当时为了测试yugabytedb 的cdc 功能
    在ext 目录copy 了一个jar 包,因为guava 包在java 开发中如此的方便,基本都会依赖的,删除jar包 ,重新运行问题解决

说明

一般放置三方jar 包到java 的ext 目录,仔细阅读下jar包实现的功能吧,不然排查起来问额就太费事了,折腾了好几个小时,还好最后解决了。
一个经验教训:不要轻易在java ext 目录放任何三方jar包

参考资料

https://stackoverflow.com/questions/52363536/java-lang-nosuchmethoderror-com-google-common-collect-immutablesortedset-toimmu/52363643

不要轻易在java ext 目录放任何三方jar包的更多相关文章

  1. Jdk和Jre目录和三个lib目录说明----外部扩展jar包servlet,mysql,oracle等

    以下文章转载自a personal blog:For Future,因为昨天下午在cmd模式下编译servlet失败,后来在网上找到这篇文章帮我解决了该问题,我觉得挺值得收藏的,并且这篇文章对&quo ...

  2. 用命令行编译java并生成可执行的jar包

    用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...

  3. java第四节 异常/访问控制/jar包

    /* 异常 异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,如程序要打开一个不存在的文件 网络连接中断,操作数越界,装载一个不存在的类等 try, catch语句 throws关键字 自定 ...

  4. 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  5. Java SE 9 多版本兼容 JAR 包示例

    Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在 ...

  6. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  7. java类在eclipse上打jar包,Linux上成功运行的实例

    1 eclipse下的java项目结构如下图所示: 2 打包的步骤如下: 3 修改minifest.mf文件:  4 .上传需要的三方jar包们和主类打的jar(案例是topV.jar)并且执行jav ...

  8. Idea下面无法识别web-inf下lib目录的子目录的jar包,只能直接放lib下面才能识别?

    解决方案一: Ctrl+Alt+Shift+s打开projuect Structure-->Livraries-->➕-->java-->选择对应的lib目录即可! 解决方案二 ...

  9. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring目录结构和基础JAR包介绍

    可以通过网址 http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframe ...

随机推荐

  1. - Java中boolean类型占用多少个字节 MD

    目录 目录 Java中boolean类型占用多少个字节 1个bit(1位) 1个Byte(1字节,8位) 4个Byte(4字节,32位) 分析 官方文档中的描述 Markdown版本笔记 我的GitH ...

  2. .NET中的异步编程——动机和单元测试

    背景 自.NET 4.5发布以来已经有很长一段时间了.留在了我们的记忆里,其发布在2012年8月15日.是的,六年前.感觉老了吗?好吧,我不打算让你做出改变,而是提醒你一些.NET发布的亮点.此版本带 ...

  3. Go的运算符

    1 算术运算符 运算符 术语 示例 结果 + 加 10 + 5 15 - 减 10 - 5 5 * 乘 10 * 5 50 / 除 10 / 5 2 % 取模(取余) 10 % 3 1 ++ 后自增, ...

  4. IDEA新建一个Spring Boot项目

    Maven构建项目模板 maven构建的是maven风格的纯净模板,要转变成spring boot项目需要自己添加依赖等配置. mvn archetype:generate: Maven插件原型是一个 ...

  5. ip2region.jar实现ip转地址

    ip转地址 根据ip地址查询出所在地址. GitHub地址 https://github.com/lionsoul2014/ip2region/ pom坐标 <dependency> &l ...

  6. 【转载】如何查看本机电脑的公网IP

    在实际使用电脑的过程中,很多时候我们需要知道本地电脑的当前公网IP地址,我们都知道个人电脑的公网IP是不固定的,可能每天的对外公网IP都不一样,如果要查看当前本机电脑的对外公网IP,方法也很简单,直接 ...

  7. 89.canvas制作爱心

    <!DOCTYPE html> <html> <head>     <title>JavaScript和html53D玫瑰花(程序员的情人节礼物)< ...

  8. Python 之 计算psnr和ssim值

    基于python版的PSNR和ssim值计算 总所周知,图像质量评价的常用指标有PSNR和SSIM等,本博文是基于python版的图像numpy的float64格式和uint8格式计算两种指标值(附代 ...

  9. php+js实现极验,拖动滑块验证码验证表单

    现在很多网站,比如淘宝,京东等都改用使用极验拖动验证码实现登录,这种方式比传统的验证码方式有更好的体验,减少用户输入的错误,也同样能起到防盗刷的功能.现在很多极验都是第三方的,也很多都是收费的.今天在 ...

  10. MySQL MHA--主库故障检测

    MHA主库检查参数 MHA从0.53版本开始支持ping_type参数来设置如何检查master可用性:ping_type=select: 基于一个到master的已经存在的连接执行select 1, ...