只是尝试使用BeanComparator,但我得到了一些我无法解决的错误:
BeanComparator comparator = new BeanComparator("age");
Collections.sort(myList, comparator);
comparator = new BeanComparator("name");
Collections.sort(myList, comparator);
comparator = new BeanComparator("sickness");
Collections.sort(myList, comparator);
运行此代码会产生以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/comparators/ComparableComparator
at org.apache.commons.beanutils.BeanComparator.<init>(BeanComparator.java:81)
at testBeanComparator.TestBeanComparator.main(TestBeanComparator.java:23)
这是我设置为隔离BeanComparator问题的基本java应用程序。 我把罐子和maven包括在一起:
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-bean-collections</artifactId>
<version>1.8.3</version>
</dependency>
知道造成这种混乱的原因吗?
提前谢谢。答案 0 :(得分:2)
确保commons-beanutils.jar
和commons-logging.jar
以及commons-collections.jar
。我尝试了commons-beanutils-1.9.2 , commons-logging-1.2, commons-collections-3.2.1
答案 1 :(得分:0)
当您使用eclipse中的依赖项构建maven项目时,将构建jar并且输出jar文件是maven本地存储库作为您提到的位置。 在构建jar之后,如果需要执行jar文件,则应在类路径中添加commons-beanutils以执行jar。 ie)java -jar -cp 正如您所说,错过了依赖关系,因此尝试添加依赖项,您可以通过右键单击项目并单击构建路径并单击maven依赖项来验证该依赖项。 如果您通过手动运行mvn命令进行构建,那么在构建jar文件时缺少依赖项时会出现错误。