关于lucene的demo运行时出现Exception in thread "main" java.lang.NoClassDefFoundError错误

本文详细介绍了如何配置Lucene 4.1.0的环境,并通过设置用户变量中的classpath来解决NoClassDefFoundError错误。文中还提供了创建索引及搜索的具体命令。

lucene已经发展到了4.1.0,但是在网上还没有lucene4.1.0的配置的相关文章,一般网上关于lucene的配置都是要在环境变量的CLASSPATH中添加lucene的位置。比如:“D:/java /lucene/lucene-core-4.1.0.jar;”我尝试了n次都是运行时出现Exception in thread "main" java.lang.NoClassDefFoundError错误,最后用echo%classpath%发现

输出的classpath中并没有D:/java /lucene/lucene-core-4.1.0.jar,网上查了n久才发现这时输出的是用户变量而不是系统变量,所以我决定了不在系统变量中设置classpath,而是在

用户变量中添加classpath,classpath为“.;D:/java /lucene/lucene-core-4.1.0.jar;D:/java /lucene/lucene-demo-4.1.0.jar;D:/java /lucene/lucene-queryparser-4.1.0.jar;D:/java /lucene/lucene-analyzers-common-4.1.0.jar"。注意要想正确运行demo,这四个文件都必须添加到用户变量的classpath中,最后

在cmd窗口中,输入如下命令,建立索引

java org.apache.lucene.demo.IndexFiles   -docs   E:\lucene\test

其中-docs必须加上,否则系统不会创建index索引文件夹,当索引创建成功,内容如下

 

 

 

 

即可输入如下命令,运行无恶念

java org.apache.lucene.demo.SearchFiles

即可对test下的文件内容进行查询

 

 

 

### Java中`java.lang.NoClassDefFoundError: org.apache.lucene.util.Accountable`解决方案 当遇到`java.lang.NoClassDefFoundError: org.apache.lucen‌e.util.Accountable`错误,表明程序尝试访问Lucene库中的Accountable类却未能成功找到它。此问题通常不是因为缺少整个JAR文件,而是由于特定版本的Lucene JAR未被正确引入或兼容性问题。 对于此类问题的一个常见解决方法是在项目的构建路径中加入正确的Lucene核心库版本。具体操作可以参照如下建议: 确保使用的Lucene版本支持所需的功能组件。例如,在某些较新版本的Lucene中可能已经移除了旧版中存在的类;因此,确认所依赖的具体模块确实包含了所需的`org.apache.lucene.util.Accountable`类至关重要[^3]。 另外一种情况是Tomcat服务器在启动过程中并未加载必要的JAR包。针对这种情况,可考虑将缺失的JAR文件手动复制至Web应用程序下的`WEB-INF/lib`目录内,并重启服务来验证效果[^1]。 最后,清理并重建项目有助于消除潜在的编译缓存问题,这可以通过IDE提供的功能完成,比如Eclipse中的Project -> Clean... 和 Project -> Build All选项[^2]。 ```xml <!-- Maven pom.xml配置示例 --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>8.9.0</version><!-- 请根据实际需求调整版本号 --> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-backward-codecs</artifactId> <version>8.9.0</version><!-- 确保与其他Lucene组件版本一致 --> </dependency> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值