我想在java中使用Jodd库,因为我想尝试Jerry。 为此,我已经将this question的答案中显示的库包括在内,并使用了以下代码:
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
at sla.htmlf.Main.test(Main.java:36) 在sla.htmlf.Main.main(Main.java:19)当然是指我项目的类
这是我第一次遇到NoClassDefFound异常。似乎缺少了org.slf4j.LoggerFactory,但如果我没有弄错,那就是jodd库使用的东西 - 然后应该包含在那里,对吗?
我真的很感激这个建议/帮助
答案 0 :(得分:1)
看起来你错过了其他一个lib引用的slf4j库。
答案 1 :(得分:1)
将slf4j-api-1.7.2.jar
添加到您的类路径中。
答案 2 :(得分:1)
正如您在download page上看到的那样, jodd-lagarto 模块( Jerry 所属)依赖于SLF4J日志库。
请详细了解logging in Jodd。在此页面上,您还可以找到一些快速步骤来设置您的环境并使其正常工作。
这些步骤是:
使用SLF4J,您可以选择要使用的日志框架:none,log4j,commons等; Jodd的作者推荐logback。
答案 3 :(得分:0)