为什么 JasperReports 会尝试加载 org.springframework.core.io.Resource class?

Why does JasperReports try to load org.springframework.core.io.Resource class?

最近我们将 JasperReports 集成到我们的企业应用程序中。我们的一些用户在客户端获得 java.lang.NoClassDefFoundError: org/springframework/core/io/Resource,这是一个 Swing 应用程序。 jnlp 文件包含 jasperreports.jar,并且我们的代码中没有导入此 class。为什么 JasperReports 会尝试加载这个 class?

spring-core.jar是可选的jasper report dependency

为什么要加载它?

我会检查 jrxml 文件和 jasperreports_extension.properties.

我在我的电脑上重现了错误,发现 jasperreports-chart-themes.jar 使用 spring-core.jarjasperreports-functions.jar 使用 jodatime api。因此,如果您确实不需要,请删除这些 jar,否则添加依赖的 jar。

我遇到了与 jasperreports-fonts-3.7.1 相同的问题

我将这个 jar 与 jasperreports-3.7.1 一起使用来显示 UTF8 字符(使用 DejaVu Sans 字体)

jasperreports-fonts-

的jasperreports_extension.properties中使用了spring依赖

我将 spring-core 和 spring-beans 2.5 添加到类路径中,问题就解决了