如何在Eclipse中阻止引用netcdfAll库时SLF4J加载提示
解决SLF4J加载失败提示的问题
我之前碰到过类似的情况,其实问题根源不在你的IDE或者项目配置,而是你引用的netcdfAll-4.6.jar本身隐式依赖了SLF4J——虽然你没手动添加任何SLF4J相关依赖,但这个jar内部的代码会调用SLF4J的日志接口,运行时JVM就会尝试加载SLF4J的实现类,找不到就会输出那串提示。
给你两个可行的解决方案:
添加SLF4J的NOP实现jar:
去下载对应版本的slf4j-nop.jar(要和netcdfAll依赖的SLF4J版本匹配,比如netcdfAll-4.6通常依赖SLF4J 1.7.x系列),把它添加到项目的构建路径里。这样JVM就会找到这个无操作的日志实现,不会再输出加载失败的提示,也不会影响你项目的正常运行。替换为轻量版的netCDF jar:
如果你不需要netCDF的日志功能,可以尝试使用不带SLF4J依赖的netCDF分模块jar(比如只引用核心功能的jar),不过这种方式需要你梳理项目用到的netCDF功能,相对麻烦,更推荐第一种方法。
另外你怀疑是IDE的问题?其实不是,哪怕你换用其他IDE运行这个项目,只要netcdfAll-4.6.jar在依赖里,就会出现同样的提示——这是JVM加载依赖时的正常行为,和IDE无关。
内容的提问来源于stack exchange,提问作者Drubio
相关产品推荐
相关产品推荐

