一、前言
本来正常运行的项目,早上一看,登录页面无法显示验证码了,怀疑是系统更新导致的无法加载硬件的图形化界面导致的。我今天在清理了一下linux系统的缓存后,发现又不能显示验证码了,看来还是需要依靠weblogic的图形化显示功能,依靠电脑本身的还是太不靠谱。
二、问题报错
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
Caused by: java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
三、问题解决
找到startWeblogic.sh文件,我的在/home/weblogic/Oracle/Middleware/user_projects/domains/WuxiDomain/bin目录下,可以复制到本地,在最后一行加入-Djava.awt.headless=true
我的截图如下:
1、修改完成以后,发现就好使了,网上有人说 改这个变量为JAVA_OPTIONS=-Djava.awt.headless=true;但是我按照这个修改后发现不好使。
2、正常修改完上面的步骤就会好使,如果还不行,可以修改vi setDomain.sh,找到JAVA_OPTIONS,然后在后面加上JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"
四、Linux系统配置普通用户JDK
1、在Linux中,Linux一般都会有一个默认安装的JDK,但是这个JDK我们在平常使用时可能用的不同版本的JDK,这个时候就需要配置某个用户的JDK,配置方式为,在根目录下修改.bashrc文件,因为是隐藏文件,如果想看到的话,需要在xftp的Tools下Options---show file start **** 勾选即可
2、修改bashrc文件,在后面加上下面这句即可
JAVA_HOME=/home/weblogic/java/jdk1.8.0_131
CLASSPATH=.:$JAVA_HOME/bin/tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
export JAVA_HOME CLASSPATH PATH
五、tomcat无法显示验证码问题
1、我在网上查了好多方法,基本都说按照以下方式执行,我执行了以后发现还是不行。
修改${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat)
查到-Djava.io.tmpdir="$CATALINA_TMPDIR"这行,并在这一行下加入:
-Djava.awt.headless=true \
tomcat6共有七处,其它版本tomcat可能有所不同
执行:sed -i '/-Djava\.io\.tmpdir=/a\-Djava.awt.headless=true \\' /usr/local/tomcat/bin/catalina.sh
保存后,重新启动就可以处理图形了
2、然后我觉的验证码没显示是和JDK有关,然后又查了一下,果然有人说是因为用了默认的JDK的关系,然后我又重新下载了一个JDK,然后直接运行就OK了。
六、root用户配置JDK
[root@localhost software]# vim /etc/profile
export JAVA_HOME=/opt/soft/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@localhost software]# source /etc/profile
[root@localhost software]# java -version