首页编程java编程java为什么会包冲突(jar包冲突解决方法)

java为什么会包冲突(jar包冲突解决方法)

编程之家2023-10-12102次浏览

大家好,今天来为大家分享java为什么会包冲突的一些知识点,和jar包冲突解决方法的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

java为什么会包冲突(jar包冲突解决方法)

为什么我在安装java的时候会出现这个

1.验证错误

有一种情况非常匪夷所思:即使你确定Java安装正确,但仍然会报错!如果出现这种情况,你可以通过验证Java是否可以正常工作来排除这个错误,点击这个页面,就可以进行验证。如果可以正常工作,那就说明没有问题。

2.与旧版本冲突

java为什么会包冲突(jar包冲突解决方法)

如果Java安装成功,但没有正常工作,这个时候你需要查看Windows的控制面板,看看里面是否存在Java的控制版块。如果没有,问题往往是JavaFX与旧的Java代码冲突导致的。

解决办法是,在Windows控制面板中删除所有的Java实例,然后清理Windows中遗留的Java代码片段,重新安装即可。

3.使用离线安装

java为什么会包冲突(jar包冲突解决方法)

安装Java,通常我们都会使用在线的方式,但这种方式往往都会出现一些稀奇古怪的问题。所以,我们不妨使用离线的安装方式。在Java的官方网站上,你可以选择适合自己系统的Java安装包。

4.尝试32位版本

相信很多使用64位版本系统的开发者,都会选择适合这个系统版本的Java,看似这是个合理的选择。但是,相比于64位版本,使用32位版本的Java好像影响也不是很大。所以,如果你安装64位版本遇到麻烦了,这里建议你换成32位版本。

5.使用管理员权限安装

如果你使用Windows 7或Windows 8系统安装Java失败时,你可以尝试下使用管理员(administrator)权限进行安装。首先,你需要下载好所需的Java的安装包,然后右键点击文件,选择“以管理员身份运行”选项。

6.暂时禁用用户账户控制

有开发者表示用户账户控制功能可能会影响Java的安装。如果你确实怀疑,你可以暂时禁用它。当然,不同的Windows版本关闭它的方式不一样。

7.设置IE浏览器的安全性为默认级别

如果你的Internet Explorer的安全级别比默认要高,或者设置的是自定义的安全级别,那么很可能造成Java的安装失败。这时候你只要将其设置为默认级别即可。打开IE浏览器,进入“Internet选项”,这里面可以设置安全级别。

8.暂时禁用杀毒软件自动扫描

有很多杀毒软件都会阻止Java的正常安装。这里建议你下载离线版本,然后使用杀毒软件进行全盘扫描,确保自己系统没有感染任何病毒。然后暂定它,再安装Java。安装完成之后,你就可以继续使用杀毒软件。

9.检查用户配置文件

据微软表示,已经被损坏的用户配置文件很可能就是导致Java安装失败的罪魁祸首。这时候你可以创建一个新的用户,并为该用户分配本地的管理权限,然后登陆该账户,再进行Java的安装。

10.使用系统配置工具

Java安装失败,往往与系统正在运行的其他软件有关系,这时候你需要暂时禁止这些软件的运行。最简单的方法是,打开运行,输入MSCONFIG,启动Windows系统配置程序,这里你可以选择要禁用的启动项。

jar包冲突解决方法

今天启动工程时候报了一个slf4j相关的jar包冲突的问题,java.lang.NoSuchMethodError(找不到具体方法),在idea中发现slf4j-api有两个不同的版本,解决办法如下

在idea右侧maven窗口中选中模块名称,右击选择jar包依赖树

按ctr+f输入冲突的jar包就可以找到它的继承关系,找到根坐标,然后在pom.xml中找到对应的坐标exclusion就ok啦

jar包冲突时候也有可能如下报错

1、java.lang.ClassNotFoundException(找不到类)

2、java.lang.NoSuchMethodError(找不到具体方法)

3、java.lang.NoSuchFieldError(字段错误)

4、java.lang.LinkageError(类错误这个我没怎么见过)

jmcomic为什么一直于软件包有冲突

一、前言

在进行 Java开发时,通常我们会选择 Slf4j作为日志门面,但日志实现却不尽相同。如果系统运行中同时存在多个日志实现,就会出现类似下图的 Warning。

二、问题原因

我们知道 SpringBoot默认使用的日志实现是 Logback,因此我们尝试在项目中引入 Log4j的依赖时,就复现了上图的报错。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-log4j2</artifactId>

</dependency>

上图报错告知我们存在多个 SLF4J bingdings,分别位于 logback和 log4j包中,有两个 StaticLoggerBinder。

我们知道使用 Slf4j,需要 LoggerFactory.getLogger()方法获取实例。

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private final Logger logs= LoggerFactory.getLogger(xxx.class);

我们就可以通过这个作为入口,去看看源码的实现。如下图所示,我标注了需要关注的核心代码。

(1)调用 getILoggerFactory()方法得到 LoggerFactory。

(2)对于首次调用,INITIALIZATION_STATE应该是 UNINITIALIZED,所以进入初始化的逻辑,调用方法 performInitialization()。

(3)调用 bind()方法。

(4)如果不是 isAndroid(),调用 findPossibleStaticLoggerBinderPathSet()方法,故名思意,查找可能的 staticLoggerBinder,注意这里返回的类型是 SET,即可能是多个。

(5)在findPossibleStaticLoggerBinderPathSet()这个方法内,首先通过 classLoader加载了 org/slf4j/impl/StaticLoggerBinder.class这个类的 path,它可能存在多个,因此使用了 while获取了所有的 path,并最终返回。

(6)reportActualBinding()方法会校验 SET的 size,如果大于 1,就会打印出一开始我们看见的 Warning了。

三、问题解决

解决思路就是将你不想要的日志实现从依赖包中排除掉即可,通过 IDEA提供的 Diagrams能够非常方便的查看项目中的依赖关系。

打开项目的 POM文件,右键选择 Diagrams-> Show Dependencies

假设我们想要排除 logback依赖,使用 log4j。Ctrl+ F搜索 logback,可以找到引用该依赖的树形结构。

点击窗口左上角的下图中的这个图标,可以只看当前选中的这个依赖的关系。

选中后效果如下:

如上图所示,logback由 spring-boot-starter-logging引入,最顶层是由 spring-boot-starter-web和 spring-boot-starter-test引入。

我们尝试在 spring-boot-starter-web中排除该依赖,应该就可以了。如果排出后重新搜索仍然存在 logback依赖,则重复执行排除的操作。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-logging</artifactId>

</exclusion>

</exclusions>

</dependency>`

四、总结

日志框架冲突特别对于新手来说处理起来比较头疼,因为涉及到了日志接口和日志实现。

我们推崇的应该是面向接口编程,因此我们大到开源项目,小到公司的公共 jar包,应当合理利用 Maven的传递机制。具体的日志实现不应该传递出去,避免影响到调用的下游方。

<optional>true</optional>`

转载至:https://jitwxs.cn/e2390047.html

编辑于 2021-01-30·著作权归作者所有

赞同 4

评论

相关推荐

如果只推荐一款成猫粮,你会推荐哪款?进口猫粮蓝馔、渴望、爱肯拿、美士哪个牌子好?2022高性价比成猫粮选购推荐(12月更)

过去一年,我自费近万元,从国产卫仕到进口蓝馔、渴望,测试不下15款猫粮,就是为了给家里2个挑食肠胃又傲娇的猫主子,找到一款最合适的口粮。养宠6年负责任的说,猫咪生病90%的原因都来自于猫粮,品质不好的猫粮营养不均衡,猫咪吃了容易生病,到医院花大钱不说,关键是孩子受罪,我们也跟着操心。而选择一款好的猫粮,更好的为猫咪补充身体需要的营养同时,猫咪爱吃长时间身体健康不生病,毛色亮精神好,排便不软便,铲屎...

阿多尼斯船长的回答

鼻子黑头巨多!有什么逆天好用的去黑头泥膜?

比手挤还要见效的去黑头方法总共就10来分钟,这辈子都不用和黑头打交道了!我说的这个不用和黑头打交道,单纯指的是在定期的清洁维护下黑头不会在脸上出现,并不是指搞一次清洁后黑头就永远消失了毕竟黑头是油脂氧化后的产物,只要咱皮肤正常分泌油脂,这玩意儿就一直是会存在的但是!哥们我现在一个月只需要定期清洁那么几次,别说黑头了,痘痘闭口粉刺都很少见!一年四季整张脸基本都是干干净净的先重度提醒一下闭坑环节知道有...

我有3千万的回答

【敏感肌面霜大PK】6款敏感肌面霜大实测,帮你选择最适合的敏感肌面霜

史上最全干货!作为敏感肌大红脸,5年来我已经买过30多款面霜,这次就把敏皮护肤指南给大家掰扯透!!原创内容不接受转载,定期更新。目前在榜的是:6款口碑好or热度高的敏感肌面霜,价位在几十到几百不等,成分和使用体验都会尽可能详细的补充。如果有什么方面没涉及到,或者有什么牌子想问的,大家可以直接留言,我会接着更新,后面还有敏皮需get的基础知识,姐妹们可以点点收藏,以防走丢~6个产品的基本信息摸良心讲...

一只奈良小鹿几的回答

2022年孕妇沐浴露榜单安利:孕期安全又好用的沐浴露TOP10榜来喽~拒绝智商税,警惕“黑名单”沐浴露钻空!!

前言:本文主旨是帮助大家挑选适合安全又好用的孕妇沐浴露,不刻意营销吹捧,实实在在分享我接触过,或身边怀孕妈妈接触过的孕妇沐浴露分享给大家,仅供参考~不管外面对所谓“孕妇专用”营销的有多火!大家只需要记住一条:孕妇是否需要用专门的沐浴露要根据自身的情况而定。像体质好并且平时没有被孕反影响的孕妈,之前的沐浴露用的又是安全、低刺激的产品,那就没必要再更换其它牌子的沐浴露。但是如果你用的是什么L士、舒F佳...

糯米团团的回答

高度近视吃叶黄素有用吗?

爱次溜溜梅的回答

经常掉头发,怎么能让发量变多?Onuy育发液真的有用吗?

我是真没想到,一个几十块的育发液能这么好用,直接拯救了我们“濒危”的头发!一不小心获得让头发变多的技能,实在忍不住了,发出来浅浅的嘚瑟嘚瑟:​其实老早以前我也算是个能炫耀发量的女生,BUT,自从工作了后天天加班、熬夜,不知不觉中头发都快熬没了。为了头发这事儿,我也是下了狠心,防脱套装、#发仪,某凝胶,以及各种养发馆,还有什么生姜擦头皮,侧柏叶煮水洗头好多偏方,我都试过用处都不大!后来还是刷小红薯的...

月野的回答

2023年壁挂炉选购攻略,家用壁挂炉怎么选?哪种壁挂炉更节能,功率如何选?家用壁挂炉选购看这一篇就够了

贴地飞行的回答

夫妻感情不合面临离婚?教你正确挽救婚姻全攻略

从事情感咨询多年,我发现很多的病入膏肓的婚姻都是“拖”出来的,归根于很多人遇到婚姻问题时缺乏合理有效的方法,导致问题愈演愈烈。为此我专门做了下面的这个链接,如果你对自己的感情问题拿捏不准,可以点击链接卡片获取咨询联系方式,进行一次详细的咨询分析。有需要的伙伴可以点击获取。https://xg.zhihu.com/plugin/d59d60cb7fb0bc466fa24818a474d75a?BIZ...

林然心理咨询师的回答

有什么沐浴露可以把自己腌入味?

桃花仙的回答

奇遇MIX VR一体机,一款具有混合现实(MR)功能的消费级VR一体机,VR和MR的融合,将带来哪些新奇的体验?(内有奇遇MIX VR一体机上手体验及测评)

王之葵托利的回答

收起

大家还在搜

苹果ssl错误怎么办

slf4j和log4j区别

creo突出显示的2尺寸冲突

如何解决约束和尺寸冲突

slf4j官网

处理冲突的5种方式

@slf4j

草图包含冲突的约束怎么办

解决价值冲突的主要原则

slf4j怎么读

s m a r t原则包括

初中生如何处理矛盾冲突

越狱后ssl错误

iphone发生了ssl错误

冲突的四个原则

处理冲突的原则有哪些

ssl错误是什么意思

f t分别代表对错

无法加载发生了ssl错误

ssl错误无法建立安全连接

处理冲突的原则包括智慧树

处理学生冲突遵循的原则

处理人际冲突的原则有哪些

处理学生冲突的基本要求

相关推荐

jar包冲突解决:SLF4J: Class path contains multiple bindings._知乎

配置完springboot项目启动后报错:SLF4J: Class path contains multiple SLF4J bindings.Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j原因:slf4j日志jar包冲突解决思路:从上图可以看出三...

slf4j包冲突问题_知乎

java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format百度上面查到的::原因可能有两个:1、jar包冲突,build path下可能加入了 slf4j-log4或者 log4j的jar包,删除即可.2、jar包版本导致的,例如如果你的Logback是1.0.6版本,...

一个解决jar包冲突的实现方案_知乎

0.概述 fat-jar是将一个jar所依赖的jar都内嵌在它的jar包中而重新打包成的新jar.内嵌的jar只能被jat-jar包内的资源引用,因此jat-jar可以有效的解决jar包冲突.例如:...

是时候跟NoSuchMethodError说再见了_知乎

看到异常信息后,第一反应是这种问题99.9999%的原因是maven依赖包有不兼容的问题.不过用idea的Dependency Analyzer排查时发现根本就不存在有冲突的包.这下发现遇到真问题了....

JAR包冲突解决的思路_知乎

一.什么情况下会产生JAR包冲突二.JAR包冲突解决的一般思路1.版本选择(1)优先使用较高版本(2)查看版本的依赖,选择依赖版本与项目J

文章分享结束,java为什么会包冲突和jar包冲突解决方法的答案你都知道了吗?欢迎再次光临本站哦!

java中400是什么错误 Java Web项目中的404错误指什么四大名捕安世耿(四大名捕安世耿怎么变成了树)