当前位置: 首页 > news >正文

runtime过程中,常见jar问题解决

io.netty

java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.<init>

此类问题报错,主要是io.netty 多个jar 冲突导致。、

使用以下命令查看同一个jar 有哪些版本

 mvn dependency:resolve -Dclassifier=sources

对一些不愿意引入的依赖加上 exclusion

<exclusions><exclusion><groupId>io.netty</groupId><artifactId>netty-common</artifactId></exclusion><exclusion><groupId>io.netty</groupId><artifactId>netty-buffer</artifactId></exclusion></exclusions>

需要注意的是 netty-all 不能顶替所有其他的netty的依赖,比如 netty-common

<exclusions><exclusion><groupId>io.netty</groupId><artifactId>netty-all</artifactId></exclusion></exclusions>  

classnotfound 问题

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.util.LookupCache

需要引入如下的依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.4.1</version><scope>compile</scope></dependency>

类加载问题

maven。scope元素主要用来控制依赖的使用范围,指定当前包的依赖范围和依赖的传递性,也就是哪些依赖在哪些classpath中可用。常见的可选值有:compile, provided, runtime, test, system等。

compile:默认值。compile表示对应依赖会参与当前项目的编译、测试、运行等,是一个比较强的依赖。打包时通常会包含该依赖,部署时会打包到lib目录下。比如:spring-core这些核心的jar包。provided:provided适合在编译和测试的环境,和compile功能相似,但provide仅在编译和测试阶段生效,provide不会被打包,也不具有传递性。比如:上面讲到的spring-boot-devtools、servlet-api等,前者是因为不需要在生产中热部署,后者是因为容器已经提供,不需要重复引入。runtime:仅仅适用于运行和测试环节,在编译环境下不会被使用。比如编译时只需要JDBC API的jar,而只有运行时才需要JDBC驱动实现。test:scope为test表示依赖项目仅参与测试环节,在编译、运行、打包时不会使用。最常见的使用就是单元测试类了。system:system范围依赖与provided类似,不过依赖项不会从maven仓库获取,而需要从本地文件系统提供。使用时,一定要配合systemPath属性。不推荐使用,尽量从Maven库中引用依赖。import: import scope只能用在dependencyManagement里面。表示从其它的pom中导入dependency的配置。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$at org.apache.spark.sql.execution.datasources.v2.odps.SparkHiveExample$.main(SparkHiveExample.scala:42)at org.apache.spark.sql.execution.datasources.v2.odps.SparkHiveExample.main(SparkHiveExample.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$at java.net.URLClassLoader.findClass(URLClassLoader.java:387)at java.lang.ClassLoader.loadClass(ClassLoader.java:418)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)at java.lang.ClassLoader.loadClass(ClassLoader.java:351)... 2 more

在这里插入图片描述
如果以上不生效,
那就去掉依赖中的

<scope>compile</scope>
http://www.lryc.cn/news/166550.html

相关文章:

  • ElementPlus· banner轮播图实现
  • Linux自动化构建项目工具——Makefile/makefile
  • 第11章 字符串和字符串函数
  • TypeScript项目配置
  • 【Spring面试】二、BeanFactory与IoC容器的加载
  • Android嵌套事务
  • 如何让项目准时上线?
  • ChatGPT 和 Elasticsearch:APM 工具、性能和成本分析
  • 不使用辅助变量的前提下实现两个变量的交换
  • SV-DJS-i13电梯对讲网关
  • 论文解析-基因序列编码算法DeepSEA
  • 计组与操作系统
  • Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果
  • 如何在matlab绘图的标题中添加变量?变量的格式化字符串输出浅析
  • Spring MVC 八 - 内置过滤器
  • @Change监听事件与vue监听属性:watch的区别?
  • C++面试记录之中望软件
  • 多功能翻译工具:全球翻译、润色和摘要生成 | 开源日报 0914
  • 在 Vue.js 中,使用 watch 监听data变量如:对象属性/data变量
  • vue中预览xml并高亮显示
  • MFC中嵌入显示opencv窗口
  • 金鸣识别网页版:轻松实现表格识别的神器
  • DasViewer可以设置打开指定文件吗?
  • uniapp微信小程序用户隐私保护指引弹窗组件
  • Java的反射应用(Method和Class)
  • Java之泛型系列--Class使用泛型的方法(有示例)
  • 【【无用的知识之串口学习】】
  • 9月13日上课内容 第三章 ELK日志分析系统
  • 不知道有用没用的Api
  • (2023,LENS 视觉模型 LLM)迈向可见的语言模型:通过自然语言的镜头来看计算机视觉