1

我想在 java 中使用 Jodd 库,因为我想尝试Jerry。为此,我包含了该问题的答案中所示的库,并使用了以下代码:

File file = new File(SystemUtil.getTempDir(), "test.html");
NetUtil.downloadFile("http://de.wikipedia.org/wiki/Toastbrot", file);
Jerry doc = Jerry.jerry(FileUtil.readString(file));

执行此代码会产生以下错误消息:

 Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
      at jodd.lagarto.LagartoParserEngine.<clinit>(LagartoParserEngine.java:22)
      at jodd.jerry.Jerry$JerryParser.createLagartoDOMBuilder(Jerry.java:80)
      at jodd.jerry.Jerry$JerryParser.<init>(Jerry.java:73)
      at jodd.jerry.Jerry.jerry(Jerry.java:121)
      at jodd.jerry.Jerry.jerry(Jerry.java:53)
      at sla.htmlf.Main.test(Main.java:36)
      at sla.htmlf.Main.main(Main.java:19)
    Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
      at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)
      ... 7 more

在 sla.htmlf.Main.test(Main.java:36) 在 sla.htmlf.Main.main(Main.java:19) 当然是指我的项目的类

这是我第一次遇到 NoClassDefFound 异常。似乎缺少 org.slf4j.LoggerFactory ,但如果我没记错的话,那就是 jodd 库使用的东西 - 那么应该包含在那里,对吧?

我真的很感激一些建议/帮助

4

4 回答 4

1

看起来您缺少其他库之一引用的slf4j库。

于 2012-11-28T10:25:49.080 回答
1

添加slf4j-api-1.7.2.jar到您的类路径。

下载:http ://www.slf4j.org/dist/slf4j-1.7.2.zip

于 2012-11-28T10:28:24.620 回答
1

正如您在下载页面上看到的,jodd-lagarto模块(Jerry所属的)依赖于 SLF4J 日志库。

请阅读有关登录 Jodd 的更多信息。在此页面上,您还可以找到一些快速步骤来设置您的环境并使其工作。

这些步骤是:

使用 SLF4J,您可以选择要使用的日志记录框架:none、log4j、commons 等;Jodd 作者推荐logback

于 2012-11-29T09:15:12.607 回答
0

缺少 slf4j-api-1.7.2.jarcommons-logging- 1.1.1.jar

于 2012-11-28T10:36:51.070 回答