jfinal 生成验证码在centos6.4中无法显示

枫林茵然 发布于 2014/02/17 21:53
阅读 1K+
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:270)
	sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82)
	java.security.AccessController.doPrivileged(Native Method)
	sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
	java.awt.Font.getFont2D(Font.java:490)
	java.awt.Font.access$000(Font.java:224)
	java.awt.Font$FontAccessImpl.getFont2D(Font.java:228)
	sun.font.FontUtilities.getFont2D(FontUtilities.java:180)
	sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:634)
	sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:795)
	sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:50)
	sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2867)
	cn.canyou.render.CaptchaRender.drawGraphic(CaptchaRender.java:137)
	cn.canyou.render.CaptchaRender.render(CaptchaRender.java:88)

jfinal 生成验证码在centos6.4中无法显示。

java版本如下:

[root@CYcentos6 ~]# java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Server VM (build 24.45-b08, mixed mode)


请问哪位高人遇到同样的问题?网上搜出来的答案还是没解决。

加载中
0
xinyin025
xinyin025

从错误来看,似乎是AWT的问题,和jfinal没关系。

等大神回复。@jFinal

0
NealFeng
NealFeng

cn.canyou.render.CaptchaRender这个是个什么类,你看看它的文档吧。

或者是没有相关字体?

搜到了这:http://my.oschina.net/b1412/blog/65187

0
缪斯的情人
缪斯的情人
这个应该是jdk原因,1.7以上或者OpenJdk在linux下经常出现这个问题,可能是字体缺失原因,尝试安装下DejaVu 字体,然后再试试。如果确认不是该原因导致在服务启动脚本添加:
-Djava.awt.headless=true 

试试



0
JFinal
JFinal
提示找不到类文件,仔细检查一下环境变量 CLASSPATH 配置是否正确
0
Fraud
Fraud
楼主,这个问题现在解决了吗?怎么弄的?
枫林茵然
枫林茵然
暂时去掉验证码了。
Fraud
Fraud
回复 @枫林茵然 : 那最后你是怎么弄的啊?是没用验证码吗?还是换了个方式?求指教。我也遇到了这个问题,公司电脑好好的,拿回家改的时候发现验证码出不来,报的也是画验证码图形的时候的错误
枫林茵然
枫林茵然
原因还是没有定位出来。
0
卖豆浆不卖油条
卖豆浆不卖油条

引用来自“Fraud”的评论

楼主,这个问题现在解决了吗?怎么弄的?

楼上所有的回答都不正确。这个问题真正的原因是:jdk的位数版本与系统的位数版本不匹配!很明显centos系统是64位的,而jdk是32位的,进而导致64位系统里,系统运行jdk 32位的libfontmanager.so文件找不到对应32位的libgcc_s.so依赖,所以才出此问题。

解决办法:将jdk换成64位的就行,已亲自测试,完美解决!

返回顶部
顶部