Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在引用NetcdfAll库的Eclipse上停止SLF4J加载_Java_Eclipse_Slf4j_Netcdf4 - Fatal编程技术网

Java 如何在引用NetcdfAll库的Eclipse上停止SLF4J加载

Java 如何在引用NetcdfAll库的Eclipse上停止SLF4J加载,java,eclipse,slf4j,netcdf4,Java,Eclipse,Slf4j,Netcdf4,我目前正在eclipse上开发一个Java项目。在项目的早期阶段,我尝试使用记录器记录不同的信息,但最终放弃了它的使用 现在,每次我将应用程序作为“Java应用程序”运行时,它都会在控制台上打印此消息 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.

我目前正在eclipse上开发一个Java项目。在项目的早期阶段,我尝试使用记录器记录不同的信息,但最终放弃了它的使用

现在,每次我将应用程序作为“Java应用程序”运行时,它都会在控制台上打印此消息

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
我试图关闭项目并重建它,但它一直在打印它。还检查了我的类导入和构建路径引用,没有发现任何问题。这和IDE有关吗

还必须提到的是,我没有像maven那样使用依赖关系管理器,我目前使用的唯一引用库是netcdfAll-4.6.jar


我的第一个想法显然是依赖性的问题,但问题是在与SLF4J相关的构建路径上找不到依赖性。

看起来您的项目中有SLF4J jar,如果您不再需要SLF4J,请检查您的maven依赖性(或gradle或ant),然后从中删除sl4j依赖性。如果您不使用依赖关系管理器,请检查您的项目的jar,可能您有slf4j jar文件。

正如他在回答中所指出的,问题是由netcdfAll-4.6.jar引起的,依赖关系可以被视为他提到的。有关这方面的更多信息,请访问

由于netcdf库强制使用记录器,解决此问题的一种可能方法是将SLF4J依赖项添加到构建路径。为此,需要将以下库添加到生成路径:

  • slf4j-api-1.7.25.jar
  • log4j-api-2.10.0.jar
  • log4j-slf4j-impl-2.0.2.jar
  • log4j-core-2.10.0.jar
如果遵循此解决方案,则需要一个配置文件来配置记录器。可以找到一些例子


另一种可能的解决方案是,在buildpath中添加仅重8kB的日志,而不强迫您使用记录器。此解决方案已由找到,并已进行测试,可以正常工作。

删除所有依赖项和配置。这与您的项目相关,而不是与IDE相关。仅仅因为你不使用它,并不意味着它神奇地消失了谢谢你的答案,但我没有使用依赖管理器,我找不到任何导致问题的依赖。我使用的唯一引用库是netcdfAll-4.6.11.jar,它与SLF4J无关。@Drubio,很明显,您的netcdfAll-4.6.11.jar中包含了SLF4J jar文件。如果您将jar文件解包并在netcdfAll-4.6.11/org/slf4j上找到它,您将看到这一点。我认为,您可以在项目中找到slf4j库的所有用法并将其删除。这应该对您有所帮助。@Drubio或者,您可以通过其他方式添加slf4j实现,如slf4j-log4j12(例如slf4j-log4j12-1.8.0-beta0.jar),但由于您不使用日志,这将是多余的。我有一个应用程序,其核心是netcdfAll库jar。不需要添加log4j jar,而且slf4j api代码已经压缩到netcdfAll jar中。我必须添加到类路径的是slf4j api jar。是的,这是一个无关的jar,但它只有8KB。如果我使用approach your approach@msdsoftware,只设置slf4j api jar,它就会不断抱怨slf4j记录器。它返回的消息与本主题开头的消息相同<代码>SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。SLF4J:默认为无操作(NOP)记录器实现SLF4J:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder 有关详细信息。抱歉。我打错了。正如我所说,SLF4JAPI代码已经压缩到netcdfAll jar中。我需要添加到类路径的是slf4j-jdk14,它是8kb。你说得对@MSDSoftware它也适用于你提到的解决方案。我将用这个解决方案编辑这篇文章,并在那里给你评分。谢谢顺便说一句:当我将slf4j JAR添加到我的构建中以使netcdfAll开心时,我发现我开始使用它们。在调试方面比System.err.println灵活得多。