繁体   English   中英

Grails中的pdf生成中的NoClassDefFoundError异常

[英]NoClassDefFoundError exception in pdf generation in Grails

在我的Grails应用程序中,我使用pdf插件创建pdf。 当我尝试创建pdf时,引发了以下异常:

there was a problem with PDF generation java.lang.NoClassDefFoundError: 
Could not initialize class sun.awt.X11FontManager

在这种特殊情况下,导致此异常的原因是什么? 请注意,该机器具有Java的1.7.0_45版本,并且我将Ubuntu与UI一起使用。

编辑:我已经尝试使用Java 1.7.0_17的另一台机器,它可以工作。 Java的两个版本之间可能存在差异,还是取决于Ubuntu版本之间的差异?

编辑2:我试图以无头模式运行Java,但是我还有另一个例外:

java.lang.UnsatisfiedLinkError: /opt/jdk1.7.0_60/jre/lib/i386/libfontmanager.so: libgcc_s.so.1

是运行先前运行的Java版本(例如1.7.0_17)的唯一解决方案,还是可以用其他方式解决它?

在非GUI环境(例如,未安装X11的Linux服务器)中运行时使用AWT类时,通常会发生此错误。 您可以通过JVM选项强制Java在“无头模式”下运行:

-Djava.awt.headless=true

您可以将其添加到grails run-app使用的GRAILS_OPTS环境变量中。 或者,如果您正在Tomcat或类似环境下运行,则可以将此JVM选项添加到启动脚本中。

如前所述,NoClassDefFoundError多次表示您的类路径中的一个类错过了另一个类(它是从属类)。

换句话说,您具有依赖于类B的类A,但是在类路径中,您只有类A。 因此,您可以毫无问题地进行编译,但是在运行时JVM找不到B类,这是使A类正常工作所必需的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM