2

我已经从http://search.maven.org/#search%7Cga%7C1%7Chikaricp(第五行)下载了 HikariCP JAR 并将其放在我的构建路径中。如果你打电话

HikariDataSource ds = new HikariDataSource();

你得到了例外:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at com.zaxxer.hikari.HikariConfig.<clinit>(HikariConfig.java:45)
    at com.josevemon.microserver.App.<init>(App.java:41)
    at com.josevemon.microserver.App.main(App.java:16)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

根据这里的评论:https ://stackoverflow.com/a/25114022/555690 ,

我不知道您正在开发什么环境,IDE 或其他什么,但这是一个简单的类路径问题,其中 HikariCP jar 在运行时不在类路径中。显然它在编译时就在路径中,否则你不会走到这一步。

所以 HikariCP 在编译时就在我的路径中,但在运行时不在。那么,我如何在运行时拥有它?我正在使用 Eclipse Luna。

4

1 回答 1

1

您需要在类路径中包含以下 slf4j jar:

  • slf4j-jdk14-1.7.10.jar
  • slf4j-api-1.7.22.jar

我使用 maven,因此通过将 slf4j-jdk14-1.7.10.jar 添加到我的 pom 文件中,它会自动添加 slf4j-api-1.7.22.jar。在您的情况下,您可以从此处下载 jar 文件:

http://central.maven.org/maven2/org/slf4j/slf4j-jdk14/1.7.10/ http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.22/

于 2018-04-26T18:21:02.810 回答