写了一个servlet生成验证码,但是页面加载不了验证码,后台报错,搞了好几个小时,按网上方法也设置,还是不行,最后解决方案:
错误如下:
java.lang.UnsatisfiedLinkError: /opt/jdk1.7/jre/lib/i386/libfontmanager.so: libgcc_s.so.1: cannot open shared object file:
No such file or directory
java.lang.ClassLoader$NativeLibrary.load(Native Method)
java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
java.lang.Runtime.loadLibrary0(Runtime.java:870)
java.lang.System.loadLibrary(System.java:1122)
sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
java.security.AccessController.doPrivileged(Native Method)
sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
sun.font.SunFontManager$1.run(SunFontManager.java:339)
java.security.AccessController.doPrivileged(Native Method)
sun.font.SunFontManager.<clinit>(SunFontManager.java:335)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
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:491)
找不到libgcc_s.so.1文件。
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
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:491)
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:669)
sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:830)
sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:50)
linux下图形界面显示问题
3.在servlet代码中加上
static {
System.setProperty("java.awt.headless","true");
}
通过开启headless模式,问题解决。
错误如下:
java.lang.UnsatisfiedLinkError: /opt/jdk1.7/jre/lib/i386/libfontmanager.so: libgcc_s.so.1: cannot open shared object file:
No such file or directory
java.lang.ClassLoader$NativeLibrary.load(Native Method)
java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
java.lang.Runtime.loadLibrary0(Runtime.java:870)
java.lang.System.loadLibrary(System.java:1122)
sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java:61)
java.security.AccessController.doPrivileged(Native Method)
sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.java:32)
sun.font.SunFontManager$1.run(SunFontManager.java:339)
java.security.AccessController.doPrivileged(Native Method)
sun.font.SunFontManager.<clinit>(SunFontManager.java:335)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
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:491)
找不到libgcc_s.so.1文件。
1.先安装gcc、gcc-c++依赖环境
yum -y install gcc
yum -y install gcc-c++
2.安装之后,再在catalina.sh中找到下段脚本
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-sourcepath "$CATALINA_HOME"/../../java \
-Djava.security.manager \
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
在此后(所有有此脚本地)加上:-Djava.awt.headless=true \
通过上2步骤后重启服务,又报下错误:
安装后,出现如下错误:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:348)
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:491)
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:669)
sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:830)
sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:50)
linux下图形界面显示问题
3.在servlet代码中加上
static {
System.setProperty("java.awt.headless","true");
}
通过开启headless模式,问题解决。