eclipse ClassNotFoundException 即使包含类的 jar 正确存在于类路径中
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32787859/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ClassNotFoundException even though the jar containing the class is properly present in the classpath
提问by blaiso
I'm configuring a new project in eclipse. my project has many modules including one of them named eas.core.
to the buildPath of my eas.core module, i have added a jar file common.jcr.jar containing a class named ContentRepositorySettings
, that I'm using into my codes. but on runtime, I'm still getting a ClassNotFoundException
as shown below
我正在 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)
回答by James Jithin
If your project is Faceted
, right click on the project and go to Properties
, and choose Deployment Assembly
on the left pane. Check if the dependencies exists there as Build Path
entries or Archives
(jars). Once this is done you may do Project
>Clean
and restart the server.
如果您的项目是Faceted
,请右键单击该项目并转到Properties
,然后Deployment Assembly
在左侧窗格中选择。检查依赖Build Path
项是否以条目或Archives
(jars) 的形式存在。完成此操作后,您可以执行Project
>Clean
并重新启动服务器。