当前位置: 首页 > 面试题库 >

即使在类路径中正确存在包含该类的jar,仍会发生ClassNotFoundException

马野
2023-03-14
问题内容

我正在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,然后Deployment Assembly在左窗格中选择。检查依赖Build Path项是否以条目或Archives(jar)的形式存在。完成后,您可以执行Project> Clean并重新启动服务器



 类似资料:
  • 问题内容: 是否可以指定一个Java ,其中包含另一个JAR文件中包含的JAR文件? 问题答案: 如果您试图创建一个包含应用程序及其所需库的jar,则有两种方法(我知道)。第一个是One-Jar,它使用特殊的类加载器来允许jar的嵌套。第二个是UberJar(或Shade),它会爆炸包含的库并将所有类放在顶级jar中。 我还应该提到UberJar和Shade分别是Maven1和Maven2的插件。

  • 我在Eclipse中创建了一个Java项目,并创建了一个带有main方法的简单类。 问题:当我运行程序(没有任何服务器等)时,我收到以下错误: 线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/commons/codec/DecoderException at autoPEC。main(autoPEC.java:6)由:java引起。la

  • 问题内容: 有没有办法将所有jar文件包含在类路径的目录中? 我正在尝试,但找不到这些jar中肯定存在的类文件。我是否需要将每个jar文件分别添加到类路径? 问题答案: 使用Java 6或更高版本时,选项支持通配符。请注意以下几点: 使用双引号(”) 使用,不 windows Linux 这类似于Windows,但使用代替。如果不能使用通配符,则bash允许使用以下语法(其中lib包含所有Java

  • 所以我在堆栈交换上尝试了各种读取此问题的各种修复,大多数说使用方法,我已经完成了。这是我的Jar资源输入法。 这将在我的ImageLoader类中使用。 并使用将图像加载到主程序中 现在在eclipse中,游戏运行并加载所有图像非常好。但我想做的是将其导出到Jar,我使用一些教程完成了这一点,并成功地将其导出到包含我使用的图像的资源文件夹中。但是当我尝试运行. jar文件时,cmd行中会弹出此错误

  • 问题内容: 尝试运行该程序。我认为要设置所有Web服务内容,我需要运行apt。(虽然使用javac,但我遇到了同样的问题)。我认为我得到的是编译错误。(显示在底部)。 我认为我需要做的是在我的类路径中包括这个jar:jsr181-api.jar (源)。有一种简单的临时方法(在solaris上)吗?我不想将其添加到我的bash_rc文件中(它永远存在)。我还知道可以使用清单文本文件来执行此操作,但

  • 问题内容: 我目前正在尝试获取我的HBase代码以使用hbase-site.xml中指定的设置。似乎使用的是默认设置,而不是hbase- site.xml配置文件中指定的设置。自更新文件以来,我已经重新启动了HBase群集,但是它仍未使用我更新的配置文件。 我正在使用的群集有2个节点,其中一个是主节点。两个节点上的配置文件都将主节点的IP指定为Zookeeper仲裁。我相信问题在于我没有使用hba