Eclipse中突然出现NoClassDefFoundError(只有那里)

时间:2017-02-02 13:38:56

标签: java maven noclassdeffounderror

在eclipse(Mars.2)到Maven(右键单击project => Configure => Maven项目)转换我的项目(只是简单的Java 1.8,没什么特别的)之后,突然间我无法做到运行以前一直工作的常用类,得到这条消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
    at eas.veryFastPDF.script.RepresentableDefault.<init>(RepresentableDefault.java:169)
    at eas.veryFastPDF.script.RepresentableDefault$1.<init>(RepresentableDefault.java:1336)
    at eas.veryFastPDF.script.RepresentableDefault.<clinit>(RepresentableDefault.java:1336)
    at eas.veryFastPDF.HelpTexts.<clinit>(HelpTexts.java:525)
    at eas.GlobalVariables.<clinit>(GlobalVariables.java:52)
    at eas.plugins.PluginFactory.deserializePlugins(PluginFactory.java:220)
    at eas.plugins.PluginFactory.loadPluginsFromFile(PluginFactory.java:127)
    at eas.plugins.PluginFactory.<clinit>(PluginFactory.java:118)
    at eas.startSetup.ParCollection.complete(ParCollection.java:1304)
    at eas.startSetup.Starter.main(Starter.java:1924)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 10 more

如果我注释掉需要StringUtils的部分,其他引用的库会导致相同的错误。问题类是它们一直存在的地方:在构建路径中引用的JAR中,并且没有编译时错误。

有些更奇怪的事情:

  • 切换回较旧的非Maven版本并不起作用。
  • 项目清理无效。
  • 清理项目的新结帐不起作用。
  • 即使安装一个新的Eclipse版本(Neon.2 - 无论如何都应该到期)都不起作用。
  • 使用命令行在eclipse之外运行DOES工作!
  • 编辑:现在我甚至删除并重新安装了Java - 仍然没有工作。

到底发生了什么?

编辑:我显然检查了建议的所有答案&#34;重复&#34;问题,他们不会工作。请不要将其标记为重复 - 它不是!

1 个答案:

答案 0 :(得分:1)

这终于(几个小时后)为我工作了:

我删除了工作区文件夹中存储的所有eclipse - 更准确地说,基本上每个文件夹都以点开头。 (可能只有.metadata文件夹才足够,但我没有勇气更深入地考察这个。)

显然,类路径的某些内容永久存储在工作区中,因此切换回早期版本并不能解决我的问题。

只是一个警告:这个解决方案确实有效,但像这样清理工作区会让eclipse几乎忘记一切!