今天在开发一个java验证码程序不论是自己写的验证码或者调用jarkta的image-taglib都会在控制台输出一堆错误:Assertion `c->xlib.lock’ failed。查了不少资料发现这个应该算是jdk的一个Bug或者说是Federo8的一个Bug.
原因是xcb的程序设计太严格而在某处源代码的50行出现了一个assertion检查,使得以前的一些“非标准设计”的程序无法执行,很不幸JAVA的awt包,swing都属于“非标准”,所以我的图形验证码无法通过,解决办法,直接升级Federo中的libxcb包
yum --enablerepo=development update libxcb
之后编辑系统环境变量/etc/profile
LIBXCB_ALLOW_SLOPPY_LOCK=1
EXPORT
重启电脑之后问题解决。