java - ClassNotFoundException 即使包含该类的 jar 正确存在于类路径中

标签 java eclipse exception classloader classnotfoundexception

我正在 eclipse 中配置一个新项目。我的项目有很多模块,包括其中一个名为 eas.core 的模块。 在我的 eas.core 模块的 buildPath 中,我添加了一个 jar 文件 common.jcr.jar,其中包含一个名为 ContentRepositorySettings 的类,我正在将其用于我的代码中。但是在运行时,我仍然得到一个 ClassNotFoundException 如下所示

java.lang.NoClassDefFoundError: cm/bao/common/jcr/ContentRepositorySettings
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2944)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.setupGlobalSettings(ElectronicArchivingApplicationImpl.java:33)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.start(ElectronicArchivingApplicationImpl.java:49)
at cm.bao.eas.ui.gwt.server.listner.ElectronicArchivingContextListner.contextInitialized(ElectronicArchivingContextListner.java:18)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: cm.bao.common.jcr.ContentRepositorySettings
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)

最佳答案

如果您的项目是 Faceted,请右键单击该项目并转到 Properties,然后在左侧 Pane 中选择 Deployment Assembly。检查依赖项是否作为 Build Path 条目或 Archives (jars) 存在。完成此操作后,您可以执行 ProjectClean 并重新启动服务器。

关于java - ClassNotFoundException 即使包含该类的 jar 正确存在于类路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787859/

相关文章:

java - 从不同的队列中删除一个对象而不迭代它们或使用硬编码

java - 如何将 OAuth 与 Imgur 一起使用?

java - Eclipse 和 Java : Is there an event monitoring feature?

java - 当我在 Android Studio 的菜单中说添加地点时,它有时会打开 map ,有时应用程序会在不打开的情况下关闭

java - 如何更改子类中变量的实现?

java - 递归霍夫曼解码函数不退出函数

java - org.apache.camel.NoSuchLanguageException : No language could be found for: simple

java - 检查 java swing 应用程序中的元素

java - Spring @ExceptionHandler 行为

java - 将 Tab 字符粘贴到 TextField 时破坏 JavaFX