【问题标题】:BoneCP SLF4J ClassNotFoundExceptionBoneCP SLF4J ClassNotFoundException
【发布时间】:2013-04-11 19:54:12
【问题描述】:

我正在测试 BoneCP 以及其他连接池解决方案,但我无法让 BoneCP 正常工作。 (在 Eclipse 中使用一个简单的 Java 应用程序)

我使用的代码是从BoneCP JDBC Example复制而来的。

按照BoneCP Requirements,我通过导入以下外部 JAR 配置了构建路径:

  • SLF4J - slf4j-jdk14-1.7.5.jar
  • 谷歌番石榴 - guava-14.0.1.jar

以下是我尝试运行 Java 应用程序时遇到的错误:

线程“main”中的异常 java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 在 com.jolbox.bonecp.BoneCPConfig.(BoneCPConfig.java:60) 在 Main.BoneCP(Main.java:70) 在 Main.main(Main.java:24) 引起:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(Unknown Source)

任何帮助或专业知识将不胜感激。

【问题讨论】:

  • 您使用的是 java 1.4 版吗?

标签: java eclipse connection-pooling slf4j bonecp


【解决方案1】:

您缺少的类在slf4j-api jar 中,当前版本为slf4j-api-1.7.5.jar。你可以得到它here。如果您使用的是 java 版本 > 1.4,请将其添加到您的构建路径并删除您拥有的 slf4j-jdk14

【讨论】:

  • 谢谢。使用正确的 JAR 文件解决了这个问题。
  • @Eazy-E 不客气。为了将来参考,您可以使用findjar.com/index.x 之类的网站来查找包含您遇到 ClassNotFound 或 NoClassDef 错误的类的 jar。
  • 感谢您的提示,我已经有一段时间没有写任何java了。
  • slf4j生态管理起来并不简单。我已经看到很多库显式地引入了对特定版本的 log4j、slf4j 和其他日志系统的 Maven 依赖项,并且我遇到了排除不正确版本的问题。我还看到其他开发人员在他们自己的项目中包含适合我的特定记录器。记得在必要时使用正确的 slf4j 桥接 jar:例如 jcl-over-slf4j。
  • 这是一个很好的观点。不过,我不认为他在使用 Maven。
猜你喜欢
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 2014-09-15
  • 2012-03-08
  • 2015-01-29
  • 1970-01-01
相关资源
最近更新 更多