初学者遇到java.lang.NoClassDefFoundError: org/dom4j/DocumentException解决方法

今天刚学完XML,自己试着去练手。
导入dom4j包,在eclipse上编译一切正常。
在这里插入图片描述
在这里插入图片描述
导出jar后双击没反应。之后在命令行运行java -jar ,发现有个异常
Exception in thread “main” java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at com.baidu.code.Main.main(Main.java:9)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
… 1 more
在这里插入图片描述
从网上的找到的回答与dom4j这个包有关,你只需要几步就可以解决这个问题。

1.在你的jar包的目录下创建一个lib文件夹,dom4j这个包放进去。
在这里插入图片描述
在这里插入图片描述
第二步,用解压软件打开你的jar包,
在这里插入图片描述
看到有个META-INF文件夹,点进去
在这里插入图片描述
发现有个文件MANIFEST.MF
在这里插入图片描述
这个文件不能在压缩包里面修改,所以复制里面的东西出来。
在这里插入图片描述
这里面有三行,第一行是版本,第三行是程序入口。主要修改的是第二个。
原先文件是没有这个Class-Path: lib/dom4j-2.1.1.jar
这个是我后面添加的。lib就是我们刚才创建的lib文件夹,加个dom4j的包名。
修改完后将文件保存为MANIFEST.MF。再将 文件直接拖到压缩包内的META-INF文件夹内,直接替换原来的文件 ,再次运行,你就会发现问题解决了。

最后最重要的一点:第三行结束后记得按下回车键,确保有4行。第4行什么都不用写。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]和\[2\]中提到的异常"java.lang.NoClassDefFoundError: org/dom4j/DocumentException"是由于缺少dom4j包导致的。要解决这个问题,你可以按照以下步骤进行操作: 1. 在你的jar包的目录下创建一个lib文件夹,并将dom4j包放入其中。 2. 使用解压软件打开你的jar包,找到META-INF文件夹,并进入其中。 3. 在META-INF文件夹中找到名为MANIFEST.MF的文件。这个文件不能在压缩包内直接修改,所以需要将其中的内容复制出来。 4. 在复制出来的MANIFEST.MF文件中,找到第二行,原先可能没有"Class-Path: lib/dom4j-2.1.1.jar"这一行。在这一行中,lib表示刚刚创建的lib文件夹,dom4j-2.1.1.jardom4j包的名称。 5. 修改完后,将修改后的MANIFEST.MF文件保存,并将其直接拖到压缩包内的META-INF文件夹中,替换原来的文件。 6. 重新运行程序,你会发现问题已经解决了。 需要注意的是,在修改MANIFEST.MF文件时,确保文件的第三行结束后按下回车键,以确保有四行内容,第四行不需要写任何内容。\[2\] 引用\[3\]中的异常信息"at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 44 more"可能是与Web应用程序的类加载器相关的错误信息,但与解决缺少dom4j包的问题无关。 综上所述,要解决"java.lang.NoClassDefFoundError: org/dom4j/DocumentHelper"的问题,你需要按照引用\[2\]中提供的步骤添加dom4j包,并修改MANIFEST.MF文件。这样就能够成功加载org.dom4j.DocumentHelper类,解决异常问题。 #### 引用[.reference_title] - *1* *3* [java.lang.NoClassDefFoundError: org/dom4j/DocumentException](https://blog.csdn.net/zyuc_wangxw/article/details/6987623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [初学者遇到java.lang.NoClassDefFoundError: org/dom4j/DocumentException解决方法](https://blog.csdn.net/abc630727719/article/details/104257070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值