引自stackoverflow
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true"
http://stackoverflow.com/questions/3628302/jasperreports-noclassdeffounderror-exception-on-net-sf-jasperreports-engine-util
Finally, I’ve got it working. I detected the root Exception, which was thrown before NoClassDefFoundError:net/sf/jasperreports/engine/util/JRStyledTextParser :
|
1
|
<span class="pln">java</span><span class="pun">.</span><span class="pln">lang</span><span class="pun">.</span><span class="typ">NoClassDefFoundError</span><span class="pun">:</span><span class="pln"> sun</span><span class="pun">/</span><span class="pln">awt</span><span class="pun">/</span><span class="pln">X11GraphicsEnvironment </span>
|
The Sun AWT classes on Unix and Linux have a dependence on the X Window System. When you use these classes, they expect to load X client libraries and be able to talk to an X display server. This makes sense if your client has a GUI; unfortunately, it’s required even if your client uses AWT but does not have a GUI (which is my case, generating a report from a web application)
The way to bypass this, is setting a system property java.awt.headless=true on system startup.
在tomcat 可以修改catalina.sh 类似:
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true"
本文介绍了解决JasperReports在运行时遇到NoClassDefFoundError问题的方法。错误源于Sun AWT类依赖X Window System,在无GUI环境下导致异常。通过设置系统属性java.awt.headless=true来绕过此依赖。

6352

被折叠的 条评论
为什么被折叠?



