没有发现Class Def错误

时间:2013-08-15 06:27:12

标签: java grails jasper-reports noclassdeffounderror

我正在处理Grails应用程序,该应用程序生成pdfdoc个文件。我使用jasper reportiReport以pdf和doc格式导出报告。当我尝试下载pdf时,会发生以下内部服务器错误:

Class: java.lang.NoClassDefFoundError
Message: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser.

可能的原因是什么,我无法弄明白。我在stackoverflow上发现了一些类似的问题,但没有一个能解决我的问题。

尝试从最后一天解决问题,但没有取得任何成功。任何人请给出一些建议/解决方案我对这个地方有很多希望。

4 个答案:

答案 0 :(得分:1)

  

类:java.lang.NoClassDefFoundError消息

根据javadocs:

  

如果Java虚拟机或ClassLoader实例尝试,则抛出该异常   加载类的定义(作为普通方法调用的一部分或   作为使用新表达式创建新实例的一部分)和否   可以找到班级的定义。

这意味着在执行期间找不到类。因此,在运行程序时,您需要在classpath上包含此类的jar。

在您的情况下,我相信您错过了net.sf.jasperreports.engine.util.JRStyledTextParser类路径上的jasperreports jar,并在jasperreports.jar

中被包含在内

答案 1 :(得分:1)

基本上是问题:

Class: java.lang.NoClassDefFoundError
Message: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser.

由于答案中列出的许多因素而发生。在我的应用程序中由于字体损坏而出现问题。当我在我的机器上添加合法字体(我的应用程序使用)的jar时,我的问题得以解决。

答案 2 :(得分:0)

您可以检查类路径中是否包含所需的jasperreports jar吗?如果没有,将jar添加到类路径应解决您的问题。

答案 3 :(得分:0)

Class: java.lang.NoClassDefFoundError

基本上意味着:

  

编译/打包时一切都很好,但在运行时   找不到类(类定义)。

当您针对正确的依赖项编译代码时会发生这种情况,但在运行时,类路径中缺少其中一些代码。对于某些问题排查,您可以查看here