【发布时间】:2017-06-19 14:41:43
【问题描述】:
在 Eclipse (Mars.2) 中将我的项目(只是普通的 Java 1.8,没什么特别的)转换为 Maven(右键单击项目 => 配置 => Maven 项目)后,突然我无法运行通常的类以前一直有效,收到此消息:
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 之外使用命令行运行确实有效!
- 编辑:现在我什至删除并重新安装了 Java - 仍然无法正常工作。
到底发生了什么事??
编辑:我显然检查了建议的“重复”问题的所有答案,但它们不起作用。请不要标记为重复 - 它不是!
【问题讨论】:
-
在命令行中在eclipse之外运行时,您之前是否也使用maven编译过?或者你只是运行你的主类?
-
不,我使用这样的普通 Java 命令:java -Xmx15000M -cp "./*;." eas.startSetup.Starter
-
您的问题必须与某些 jar 未正确添加到源代码文件夹中确实存在的类路径有关。首先检查 commons-lang jar 是否存在。
-
这不是重复的 - 清洁对我不起作用。
标签: java maven noclassdeffounderror