Java:使用JoddJerry-NoClassDefFoundError

Java:使用JoddJerry-NoClassDefFoundError,java,jquery,static-libraries,noclassdeffounderror,jodd,Java,Jquery,Static Libraries,Noclassdeffounderror,Jodd,我想在java中使用Jodd库,因为我想尝试一下。 为此,我加入了如答案中所示的库,并使用了以下代码: File file = new File(SystemUtil.getTempDir(), "test.html"); NetUtil.downloadFile("http://de.wikipedia.org/wiki/Toastbrot", file); Jerry doc = Jerry.jerry(FileUtil.readString(file)); 执行此代码会产生以下错误消息:

我想在java中使用Jodd库,因为我想尝试一下。 为此,我加入了如答案中所示的库,并使用了以下代码:

File file = new File(SystemUtil.getTempDir(), "test.html");
NetUtil.downloadFile("http://de.wikipedia.org/wiki/Toastbrot", file);
Jerry doc = Jerry.jerry(FileUtil.readString(file));
执行此代码会产生以下错误消息:

线程“main”java.lang.NoClassDefFoundError中的异常:org/slf4j/LoggerFactory 在jodd.lagarto.LagartoParserEngine。(LagartoParserEngine.java:22) 在jodd.jerry.jerry$JerryParser.createLagartoDOMBuilder(jerry.java:80) 在jodd.jerry.jerry$JerryParser。(jerry.java:73) 在jodd.jerry.jerry.jerry(jerry.java:121) 在jodd.jerry.jerry.jerry(jerry.java:53) 在sla.htmlf.Main.test中(Main.java:36) 位于sla.htmlf.Main.Main(Main.java:19) 原因:java.lang.ClassNotFoundException:org.slf4j.LoggerFactory 在java.net.URLClassLoader$1.run(URLClassLoader.java:217) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:205) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:321) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:266) 位于java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) ... 还有7个 在sla.htmlf.Main.test中(Main.java:36) 在sla.htmlf.Main.Main(Main.java:19)中,当然是指我的项目的类

这是我第一次遇到NoClassDefFound异常。看起来org.slf4j.LoggerFactory不见了,但如果我没有弄错的话,那就是jodd库使用的东西——应该包括在那里,对吗


我非常感谢您提供一些建议/帮助

看起来您缺少了其他库引用的库。

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

下载:

以及您在jodd lagarto模块(Jerry所属)上看到的丢失的内容取决于SLF4J日志库

请阅读更多关于。在本页中,您还可以找到一些快速步骤来设置环境并使其正常工作

这些步骤是:

  • 转到并下载SLF4J分发包
  • slf4j-api-X.X.X.jar放在类路径上
  • 如果不需要任何日志记录,只需在类路径上放置slf4j-nop-X.X.X.jar
  • 否则,请转到并下载LOGback分发包
  • logback core.jarlogback classic.jar放在类路径上

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

显示了哪些附加依赖项是必需的。请注意,commons日志记录只是slf4j的一个选项,您也可以使用任何其他日志记录框架。
 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