java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
生活随笔
收集整理的這篇文章主要介紹了
java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
問題:
啟動(dòng)tomcat提示?Could not initialize class sun.awt.X11GraphicsEnvironment ?問題。
解決方案:
方案一:
修改${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat) 里加上一句 “CATALINA_OPTS=-Djava.awt.headless=true 添加位置:方案二
修改${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat) 查到-Djava.io.tmpdir="$CATALINA_TMPDIR"這行,并在這一行下加入: -Djava.awt.headless=true \ 共有八處的。修改好保存再重啟即可,此時(shí),如果是用遠(yuǎn)程登錄來修改的話,有可能需要修改catalina.sh這個(gè)文件的權(quán)限,用在tomcat\bin目錄下輸入chmod 777 catalina.sh修改即可!
需改過后的?全部?jī)?nèi)容:
#!/bin/sh# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.# ----------------------------------------------------------------------------- # Control Script for the CATALINA Server # # Environment Variable Prerequisites # # Do not set the variables in this script. Instead put them into a script # setenv.sh in CATALINA_BASE/bin to keep your customizations separate. # # CATALINA_HOME May point at your Catalina "build" directory. # # CATALINA_BASE (Optional) Base directory for resolving dynamic portions # of a Catalina installation. If not present, resolves to # the same directory that CATALINA_HOME points to. # # CATALINA_OUT (Optional) Full path to a file where stdout and stderr # will be redirected. # Default is $CATALINA_BASE/logs/catalina.out # # CATALINA_OPTS (Optional) Java runtime options used when the "start", # "run" or "debug" command is executed. # Include here and not in JAVA_OPTS all options, that should # only be used by Tomcat itself, not by the stop process, # the version command etc. # Examples are heap size, GC logging, JMX ports etc. # # CATALINA_TMPDIR (Optional) Directory path location of temporary directory # the JVM should use (java.io.tmpdir). Defaults to # $CATALINA_BASE/temp. # # JAVA_HOME Must point at your Java Development Kit installation. # Required to run the with the "debug" argument. # # JRE_HOME Must point at your Java Runtime installation. # Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME # are both set, JRE_HOME is used. # # JAVA_OPTS (Optional) Java runtime options used when any command # is executed. # Include here and not in CATALINA_OPTS all options, that # should be used by Tomcat and also by the stop process, # the version command etc. # Most options should go into CATALINA_OPTS. # # JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories # containing some jars in order to allow replacement of APIs # created outside of the JCP (i.e. DOM and SAX from W3C). # It can also be used to update the XML parser implementation. # Defaults to $CATALINA_HOME/endorsed. # # JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start" # command is executed. The default is "dt_socket". # # JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start" # command is executed. The default is 8000. # # JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start" # command is executed. Specifies whether JVM should suspend # execution immediately after startup. Default is "n". # # JPDA_OPTS (Optional) Java runtime options used when the "jpda start" # command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS, # and JPDA_SUSPEND are ignored. Thus, all required jpda # options MUST be specified. The default is: # # -agentlib:jdwp=transport=$JPDA_TRANSPORT, # address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND # # CATALINA_PID (Optional) Path of the file which should contains the pid # of the catalina startup java process, when start (fork) is # used # # LOGGING_CONFIG (Optional) Override Tomcat's logging config file # Example (all one line) # LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties" # # LOGGING_MANAGER (Optional) Override Tomcat's logging manager # Example (all one line) # LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" # # $Id: catalina.sh 1498485 2013-07-01 14:37:43Z markt $ # -----------------------------------------------------------------------------# OS specific support. $var _must_ be set to either true or false. cygwin=false darwin=false os400=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin*) darwin=true;; OS400*) os400=true;; esac# resolve links - $0 may be a softlink PRG="$0"while [ -h "$PRG" ]; dols=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fi done# Get standard environment variables PRGDIR=`dirname "$PRG"`# Only set CATALINA_HOME if not already set [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`# Copy CATALINA_BASE from CATALINA_HOME if not already set [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"# Ensure that any user defined CLASSPATH variables are not used on startup, # but allow them to be specified in setenv.sh, in rare case when it is needed. CLASSPATH=if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then. "$CATALINA_BASE/bin/setenv.sh" elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then. "$CATALINA_HOME/bin/setenv.sh" fi# For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin; then[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`[ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`[ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`[ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi# For OS400 if $os400; then# Set job priority to standard for interactive (interactive - 6) by using# the interactive priority - 6, the helper threads that respond to requests# will be running at the same priority as interactive jobs.COMMAND='chgjob job('$JOBNAME') runpty(6)'system $COMMAND# Enable multi threadingexport QIBM_MULTI_THREADED=Y fi# Get standard Java environment variables if $os400; then# -r will Only work on the os400 if the files are:# 1. owned by the user# 2. owned by the PRIMARY group of the user# this will not work if the user belongs in secondary groups. "$CATALINA_HOME"/bin/setclasspath.sh elseif [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then. "$CATALINA_HOME"/bin/setclasspath.shelseecho "Cannot find $CATALINA_HOME/bin/setclasspath.sh"echo "This file is needed to run this program"exit 1fi fi# Add on extra jar files to CLASSPATH if [ ! -z "$CLASSPATH" ] ; thenCLASSPATH="$CLASSPATH": fi CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jarif [ -z "$CATALINA_OUT" ] ; thenCATALINA_OUT="$CATALINA_BASE"/logs/catalina.out fiif [ -z "$CATALINA_TMPDIR" ] ; then# Define the java.io.tmpdir to use for CatalinaCATALINA_TMPDIR="$CATALINA_BASE"/temp fi# Add tomcat-juli.jar to classpath # tomcat-juli.jar can be over-ridden per instance if [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; thenCLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar elseCLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar fi# Bugzilla 37848: When no TTY is available, don't output to console have_tty=0 if [ "`tty`" != "not a tty" ]; thenhave_tty=1 fi# For Cygwin, switch paths to Windows format before running java if $cygwin; thenJAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`CLASSPATH=`cygpath --path --windows "$CLASSPATH"`JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` fi# Set juli LogManager config file if it is present and an override has not been issued if [ -z "$LOGGING_CONFIG" ]; thenif [ -r "$CATALINA_BASE"/conf/logging.properties ]; thenLOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"else# Bugzilla 45585LOGGING_CONFIG="-Dnop"fi fiif [ -z "$LOGGING_MANAGER" ]; thenLOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" fi# Uncomment the following line to make the umask available when using the # org.apache.catalina.security.SecurityListener #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"# ----- Execute The Requested Command -----------------------------------------# Bugzilla 37848: only output this if we have a TTY if [ $have_tty -eq 1 ]; thenecho "Using CATALINA_BASE: $CATALINA_BASE"echo "Using CATALINA_HOME: $CATALINA_HOME"echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"if [ "$1" = "debug" ] ; thenecho "Using JAVA_HOME: $JAVA_HOME"elseecho "Using JRE_HOME: $JRE_HOME"fiecho "Using CLASSPATH: $CLASSPATH"if [ ! -z "$CATALINA_PID" ]; thenecho "Using CATALINA_PID: $CATALINA_PID"fi fiif [ "$1" = "jpda" ] ; thenif [ -z "$JPDA_TRANSPORT" ]; thenJPDA_TRANSPORT="dt_socket"fiif [ -z "$JPDA_ADDRESS" ]; thenJPDA_ADDRESS="8000"fiif [ -z "$JPDA_SUSPEND" ]; thenJPDA_SUSPEND="n"fiif [ -z "$JPDA_OPTS" ]; thenJPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"fiCATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"shift fiif [ "$1" = "debug" ] ; thenif $os400; thenecho "Debug command not available on OS400"exit 1elseshiftif [ "$1" = "-security" ] ; thenif [ $have_tty -eq 1 ]; thenecho "Using Security Manager"fishiftexec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-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 \org.apache.catalina.startup.Bootstrap "$@" startelseexec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \-sourcepath "$CATALINA_HOME"/../../java \-Dcatalina.base="$CATALINA_BASE" \-Dcatalina.home="$CATALINA_HOME" \-Djava.io.tmpdir="$CATALINA_TMPDIR" \-Djava.awt.headless=true \org.apache.catalina.startup.Bootstrap "$@" startfifielif [ "$1" = "run" ]; thenshiftif [ "$1" = "-security" ] ; thenif [ $have_tty -eq 1 ]; thenecho "Using Security Manager"fishifteval exec \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-Djava.endorsed.dirs=\"$JAVA_ENDORSED_DIRS\" -classpath \"$CLASSPATH\" \-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 \org.apache.catalina.startup.Bootstrap "$@" startelseeval exec \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $LOGGING_MANAGER $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 \org.apache.catalina.startup.Bootstrap "$@" start fielif [ "$1" = "start" ] ; thenif [ ! -z "$CATALINA_PID" ]; thenif [ -f "$CATALINA_PID" ]; thenif [ -s "$CATALINA_PID" ]; thenecho "Existing PID file found during start."if [ -r "$CATALINA_PID" ]; thenPID=`cat "$CATALINA_PID"`ps -p $PID >/dev/null 2>&1if [ $? -eq 0 ] ; thenecho "Tomcat appears to still be running with PID $PID. Start aborted."exit 1elseecho "Removing/clearing stale PID file."rm -f "$CATALINA_PID" >/dev/null 2>&1if [ $? != 0 ]; thenif [ -w "$CATALINA_PID" ]; thencat /dev/null > "$CATALINA_PID"elseecho "Unable to remove or clear stale PID file. Start aborted."exit 1fififielseecho "Unable to read PID file. Start aborted."exit 1fielserm -f "$CATALINA_PID" >/dev/null 2>&1if [ $? != 0 ]; thenif [ ! -w "$CATALINA_PID" ]; thenecho "Unable to remove or write to empty PID file. Start aborted."exit 1fififififishifttouch "$CATALINA_OUT"if [ "$1" = "-security" ] ; thenif [ $have_tty -eq 1 ]; thenecho "Using Security Manager"fishifteval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \-Djava.endorsed.dirs=\"$JAVA_ENDORSED_DIRS\" -classpath \"$CLASSPATH\" \-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 \org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_OUT" 2>&1 "&" elseeval \"$_RUNJAVA\" \"$LOGGING_CONFIG\" $LOGGING_MANAGER $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 \org.apache.catalina.startup.Bootstrap "$@" start \>> "$CATALINA_OUT" 2>&1 "&" fiif [ ! -z "$CATALINA_PID" ]; thenecho $! > "$CATALINA_PID"fielif [ "$1" = "stop" ] ; thenshiftSLEEP=5if [ ! -z "$1" ]; thenecho $1 | grep "[^0-9]" >/dev/null 2>&1if [ $? -gt 0 ]; thenSLEEP=$1shiftfifiFORCE=0if [ "$1" = "-force" ]; thenshiftFORCE=1fiif [ ! -z "$CATALINA_PID" ]; thenif [ -f "$CATALINA_PID" ]; thenif [ -s "$CATALINA_PID" ]; thenkill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1if [ $? -gt 0 ]; thenecho "PID file found but no matching process was found. Stop aborted."exit 1fielseecho "PID file is empty and has been ignored."fielseecho "\$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted."exit 1fifieval \"$_RUNJAVA\" $LOGGING_MANAGER $JAVA_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 \org.apache.catalina.startup.Bootstrap "$@" stopif [ ! -z "$CATALINA_PID" ]; thenif [ -f "$CATALINA_PID" ]; thenwhile [ $SLEEP -ge 0 ]; dokill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1if [ $? -gt 0 ]; thenrm -f "$CATALINA_PID" >/dev/null 2>&1if [ $? != 0 ]; thenif [ -w "$CATALINA_PID" ]; thencat /dev/null > "$CATALINA_PID"elseecho "Tomcat stopped but the PID file could not be removed or cleared."fifibreakfiif [ $SLEEP -gt 0 ]; thensleep 1fiif [ $SLEEP -eq 0 ]; thenif [ $FORCE -eq 0 ]; thenecho "Tomcat did not stop in time. PID file was not removed."fifiSLEEP=`expr $SLEEP - 1 `donefifiKILL_SLEEP_INTERVAL=5if [ $FORCE -eq 1 ]; thenif [ -z "$CATALINA_PID" ]; thenecho "Kill failed: \$CATALINA_PID not set"elseif [ -f "$CATALINA_PID" ]; thenPID=`cat "$CATALINA_PID"`echo "Killing Tomcat with the PID: $PID"kill -9 $PIDwhile [ $KILL_SLEEP_INTERVAL -ge 0 ]; dokill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1if [ $? -gt 0 ]; thenrm -f "$CATALINA_PID" >/dev/null 2>&1if [ $? != 0 ]; thenecho "Tomcat was killed but the PID file could not be removed."fibreakfiif [ $KILL_SLEEP_INTERVAL -gt 0 ]; thensleep 1fiKILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `doneif [ $KILL_SLEEP_INTERVAL -gt 0 ]; thenecho "Tomcat has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE."fifififielif [ "$1" = "configtest" ] ; theneval \"$_RUNJAVA\" $LOGGING_MANAGER $JAVA_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 \org.apache.catalina.startup.Bootstrap configtestresult=$?if [ $result -ne 0 ]; thenecho "Configuration error detected!"fiexit $resultelif [ "$1" = "version" ] ; then"$_RUNJAVA" \-classpath "$CATALINA_HOME/lib/catalina.jar" \org.apache.catalina.util.ServerInfoelseecho "Usage: catalina.sh ( commands ... )"echo "commands:"if $os400; thenecho " debug Start Catalina in a debugger (not available on OS400)"echo " debug -security Debug Catalina with a security manager (not available on OS400)"elseecho " debug Start Catalina in a debugger"echo " debug -security Debug Catalina with a security manager"fiecho " jpda start Start Catalina under JPDA debugger"echo " run Start Catalina in the current window"echo " run -security Start in the current window with security manager"echo " start Start Catalina in a separate window"echo " start -security Start in a separate window with security manager"echo " stop Stop Catalina, waiting up to 5 seconds for the process to end"echo " stop n Stop Catalina, waiting up to n seconds for the process to end"echo " stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"echo " stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running"echo " configtest Run a basic syntax check on server.xml - check exit code for result"echo " version What version of tomcat are you running?"echo "Note: Waiting for the process to end and use of the -force option require that \$CATALINA_PID is defined"exit 1fi方案一已驗(yàn)證,可行;
轉(zhuǎn)載于:https://www.cnblogs.com/lizm166/p/10442581.html
總結(jié)
以上是生活随笔為你收集整理的java:提示Could not initialize class sun.awt.X11GraphicsEnvironment的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux动态链接库
- 下一篇: 前端经典面试题之CSS实现三栏布局,左右