Java 为什么只在jar上找到一些类

Java 为什么只在jar上找到一些类,java,tomcat,jar,cron4j,Java,Tomcat,Jar,Cron4j,有人知道java如何只能找到jar的一部分吗 我创建了一个做一些报告的库,并将其集成到许多不同的项目中。这个特殊的错误只发生在那些在tomcat内部运行的程序上 Exception in thread "cron4j::scheduler[10f8a8a406870a5b0d2142230000014bdf89373949886ac4]::launcher[10f8a8a406870a5b3adcceb60000014be0e6d840729614e1]" java.lang.NoClassDe

有人知道java如何只能找到jar的一部分吗

我创建了一个做一些报告的库,并将其集成到许多不同的项目中。这个特殊的错误只发生在那些在tomcat内部运行的程序上

Exception in thread "cron4j::scheduler[10f8a8a406870a5b0d2142230000014bdf89373949886ac4]::launcher[10f8a8a406870a5b3adcceb60000014be0e6d840729614e1]"
java.lang.NoClassDefFoundError: it/sauronsoftware/cron4j/DayOfMonthValueMatcher
    at it.sauronsoftware.cron4j.SchedulingPattern.match(Unknown Source)
    at it.sauronsoftware.cron4j.LauncherThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: it.sauronsoftware.cron4j.DayOfMonthValueMatcher
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
我检查了jar,它有类。
还检查类路径上是否有多个JAR。

使用java-cp选项将类包含在类路径中。类位于类路径中。通过stacktrace可以看到,在错误发生之前发现了来自同一个jar的一些类。您确定没有两个版本的jar:例如,一个在父/tomcat lib文件夹中,另一个在war中?是的,我验证了这一点。