java在linux下不能处理图形的解决办法

问题描述:

最近项目中用到Spire.Xls把Ecxel转为HTML或者PDF时,项目在windows运行正常,换到linux服务器中就报错。

项目异常信息:
先是报错:
/usr/lib/jvm/jdk1.8.0/jre/amd64/libawt_xawt:libXrender.so.1:cannot openshared object file : No such file or directory

然后再次加载时报错:
Could not initialize class com .spire xls.core.spreadsheet.XlsWorkbook
或者
java.lang.NoClassDefFoundError:Could not initialize class ...

原因

java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。

解决方案:

tomcat

打开tomcat/bin目录下的catalina.sh文件
在有-Djava.io.tmpdir...的地方下面加上Djava.awt.headless=true
文件中大概有7个左右,tomcat版本不一样个数都不同(都加上就完事了)

大概样子:

"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS"
-classpath "$CLASSPATH"
-Dcatalina.base="$CATALINA_BASE"
-Dcatalina.home="$CATALINA_HOME"
-Djava.io.tmpdir="$CATALINA_TMPDIR"
-Djava.awt.headless=true

jar

如果是jar包的话:
java -jar后面加上参数-Djava.awt.headless=true

java -jar -Djava.awt.headless=true xxx.jar

发布了108 篇原创文章 · 获赞 4 · 访问量 8325
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览