精华内容
下载资源
问答
  • macOS Catalina Patcher1.3.5

    2020-03-30 12:21:59
    macOS Catalina Patcher是一款macOS Catalina修补程序,可以在旧mac上安装最新的Catalina系统工具。可以让在不受支持的情况下,在旧的mac上安装Catalina系统,支持多种设备,是在不受支持的Mac上运行macOS Catalina...
  • 在本篇文章里小编给大家整理的是关于java项目中catalina.home与catalina.base区别点,需要的朋友们可以学习下。
  • hdiutil create -o /tmp/Catalina.cdr -size 8192m -layout SPUD -fs HFS+J hdiutil attach /tmp/Catalina.cdr.dmg -noverify -mountpoint /Volumes/install_build sudo /Applications/Install\ macOS\ Catalina\....
  • catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 catalina.bat 脚本. 至于 setclasspath.bat 这个脚本, 相信看完这一篇, 就可以自己看懂这个脚本了. 可以点击下载 [ set...
  • macOS Catalina Patcher.dmg

    2020-01-28 22:08:44
    用于mac老机器升级Catalina 在app store 无法正常购买升级的情况下使用的升级方案 具体请看: https://blog.csdn.net/zokoko/article/details/104102971
  • Mac+Catalina+PS安装包

    2020-04-22 18:14:54
    Mac手贱升级了Catalina,很多软件不能用,收集了资料分享给大家。
  • 今天小编就为大家分享一篇关于Tomcat使用Log4j输出catalina.out日志,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 从macOSBigSur降级到Catalina-附件资源
  • 自己制作的 macOS Catalina 10.15.1 cdr 文件,亲测可用,懒人专用。(附 VMware15 安装 macOS Catalina 图文教程与 macOS Catalina.cdr 镜像下载地址)
  • 自己制作的 macOS Catalina 10.15.4 cdr 文件,亲测可用,懒人专用。(附 VMware15 安装 macOS Catalina 图文教程与 macOS Catalina.cdr 镜像下载地址)
  • 苹果MACOS Catalina10.15.4 19E266系统_CDR懒人版安装包下载VMWARE15.1PRO虚拟机亲测可用 本镜像仅供学习下载使用,所有权利归美国苹果公司所有,对此引发的法律责任本人概不负责
  • macOS Catalina 10.15.5 引导黑苹果原版镜像 10.15.5 引导黑苹果原版镜像
  • catalina.jar包

    2018-01-30 20:40:10
    catalina.jar包
  • Tomcat日志catalina.out过大解决方案--使用logback的资源包,包括jar包,和使用文档,具体使用请参考我的同名博客。
  • 修改后的catalina.sh

    2019-11-01 09:46:55
    Linux日志分隔修改后的tomcat的catalina.sh,用于对tomcat每天的日志分隔
  • macOS Catalina 10.15 19A583 Clover OC 双引导 macOS Catalina 10.15 19A583 With Clover 5093 and OC 0.5.0 Dual Boot Len's DMG
  • catalina.out日志查看工具,不过查找不太好用,有时间会有便宜,可以定位到大概的位置。大多数情况是可以查到的
  • liunx版本 tomcat log目录下catalina.out文件切割工具,防止长时间运行导致catalina.out文件过大占用过多内存,里面有 切割工具和使用说明文档。
  • 部署tomcat下的项目 监控的时候发现 日志中文乱码 ,tomcat 下catalina.out 日志乱码问题处理
  • 本文主要给大家详细解析了关于Tomcat中catalina.bat原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 tomcat 的真正启动是在 catalina.bat 设置并启动的。startup.bat 只是找到...
  • windows下tomcat的catalina.out按天自动分割,windows下tomcat日志按天自动分割
  • 针对linux环境上tomcat不断输出到catalina.out文件的问题,提供一个按天分割catalina.out的脚本,以及操作说明。绝对可用!
  • Linux下,tomcat自动获取CATALINA_HOME的脚本,放到startup.sh同级目录下即可
  • Tomcat输出catalina.out的大小控制
  • 在上一篇文章最后,start.sh 最终调用了 catalina.sh 脚本(调用命令为:exec /usr/local/apache-tomcat-9.0.21/bin/catalina.sh start "$@");那么catalina.sh 具体干了什么呢? 代码块: # OS specific sup...

    接上一篇文章:我们启动tomcat下的start.sh文件,shell脚本到底做了什么呢?在上一篇文章最后,start.sh 最终调用了 catalina.sh 脚本(调用命令为:exec /usr/local/apache-tomcat-9.0.21/bin/catalina.sh start "$@");那么catalina.sh 具体干了什么呢?

    代码块:

    # OS specific support.  $var _must_ be set to either true or false.
    cygwin=false
    darwin=false
    os400=false
    hpux=false
    case "`uname`" in
    CYGWIN*) cygwin=true;;
    Darwin*) darwin=true;;
    OS400*) os400=true;;
    HP-UX*) hpux=true;;
    esac
    
    # resolve links - $0 may be a softlink
    PRG="$0"
    
    while [ -h "$PRG" ]; do
      ls=`ls -ld "$PRG"`
      link=`expr "$ls" : '.*-> \(.*\)$'`
      if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
      else
        PRG=`dirname "$PRG"`/"$link"
      fi
    done
    

    上述这一段代码,设定了一些变量, 并通过case判断根据服务器操作系统的不同,设置不同的参数值。通过while循环判断,获取catalina.sh的绝对路径(非链接),赋值给PRG。在服务器上执行unameLinux。比如我的tomcat的catalina.sh的绝对路径为/usr/local/apache-tomcat-9.0.21/bin/catalina.sh。此时,变量情况为:

    cygwin=false
    darwin=false
    os400=false
    hpux=false
    PRG=/usr/local/apache-tomcat-9.0.21/bin/catalina.sh
    

    代码块:

    # 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
    

    上述代码,通过-z判断变量CATALINA_HOMECATALINA_BASE是否已经设置;若未设置,则设定默认值。默认情况下,bin目录下默认是没有setenv.sh文件。所以上述代码执行后,变量变动情况如下:

    PRGDIR=/usr/local/apache-tomcat-9.0.21/bin
    CATALINA_HOME=/usr/local/apache-tomcat-9.0.21
    CATALINA_BASE=/usr/local/apache-tomcat-9.0.21
    CLASSPATH=
    

    代码块:

    # 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
    
    # Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a colon
    # as this is used as the separator in the classpath and Java provides no
    # mechanism for escaping if the same character appears in the path.
    case $CATALINA_HOME in
      *:*) echo "Using CATALINA_HOME:   $CATALINA_HOME";
           echo "Unable to start as CATALINA_HOME contains a colon (:) character";
           exit 1;
    esac
    case $CATALINA_BASE in
      *:*) echo "Using CATALINA_BASE:   $CATALINA_BASE";
           echo "Unable to start as CATALINA_BASE contains a colon (:) character";
           exit 1;
    esac
    
    

    上述代码,由于$cygwin=false,跳过if判断。接下来两个case通过$CATALINA_HOME与$CATALINA_BASE的值是否包含判断服务器是否设置了环境变量。若系统设置的环境变量,会给出提示,并退出执行脚本。由于服务器没有CATALINA的环境变量设置,故此时无变量变化。
    代码块:

    # 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 threading
      export 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
    else
      if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
        . "$CATALINA_HOME"/bin/setclasspath.sh
      else
        echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
        echo "This file is needed to run this program"
        exit 1
      fi
    fi
    

    由于$os400=false,所以第一段if...else...跳过,第二段if...else...进入else 。当setclasspath.sh文件可读时,执行该文件,否则给出提示,并退出脚本。
    注:关于setclasspath.sh到底在干嘛,我们下次再详述。 此时变量无变化。
    代码块:

    # Add on extra jar files to CLASSPATH
    if [ ! -z "$CLASSPATH" ] ; then
      CLASSPATH="$CLASSPATH":
    fi
    CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar
    
    if [ -z "$CATALINA_OUT" ] ; then
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
    fi
    
    if [ -z "$CATALINA_TMPDIR" ] ; then
      # Define the java.io.tmpdir to use for Catalina
      CATALINA_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" ] ; then
      CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar
    else
      CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar
    fi
    

    上述代码,对一些变量进行简单的判断,根据情况赋值,此时变量变化情况为:

    CLASSPATH= --> /usr/local/apache-tomcat-9.0.21/bin/bootstrap.jar
    CATALINA_OUT=/usr/local/apache-tomcat-9.0.21/logs/catalina.out
    CATALINA_TMPDIR=/usr/local/apache-tomcat-9.0.21/temp
    CLASSPATH=/usr/local/apache-tomcat-9.0.21/bin/bootstrap.jar --> /usr/local/apache-tomcat-9.0.21/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.21/bin/tomcat-juli.jar
    

    代码块:

    # Bugzilla 37848: When no TTY is available, don't output to console
    have_tty=0
    if [ -t 1 ]; then
        have_tty=1
    fi
    
    # For Cygwin, switch paths to Windows format before running java
    if $cygwin; then
      JAVA_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"`
      [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
    fi
    
    if [ -z "$JSSE_OPTS" ] ; then
      JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
    fi
    JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"
    
    # Register custom URL handlers
    # Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
    JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
    
    # Set juli LogManager config file if it is present and an override has not been issued
    if [ -z "$LOGGING_CONFIG" ]; then
      if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then
        LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
      else
        # Bugzilla 45585
        LOGGING_CONFIG="-Dnop"
      fi
    fi
    
    if [ -z "$LOGGING_MANAGER" ]; then
      LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
    fi
    
    # Set UMASK unless it has been overridden
    if [ -z "$UMASK" ]; then
        UMASK="0027"
    fi
    umask $UMASK
    
    

    上述代码, [ -t 1 ]=true, $cygwin=false,而后是一些变量的判断。此时变量的变化为:

    have_tty=1
    JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
    JAVA_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
    JAVA_OPTS="-Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
    LOGGING_CONFIG="-Djava.util.logging.config.file=/usr/local/apache-tomcat-9.0.21/conf/logging.properties"
    LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
    UMASK="0027"
    

    代码块:

    # Java 9 no longer supports the java.endorsed.dirs
    # system property. Only try to use it if
    # JAVA_ENDORSED_DIRS was explicitly set
    # or CATALINA_HOME/endorsed exists.
    ENDORSED_PROP=ignore.endorsed.dirs
    if [ -n "$JAVA_ENDORSED_DIRS" ]; then
        ENDORSED_PROP=java.endorsed.dirs
    fi
    if [ -d "$CATALINA_HOME/endorsed" ]; then
        ENDORSED_PROP=java.endorsed.dirs
    fi
    
    # Make the umask available when using the org.apache.catalina.security.SecurityListener
    JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
    
    if [ -z "$USE_NOHUP" ]; then
        if $hpux; then
            USE_NOHUP="true"
        else
            USE_NOHUP="false"
        fi
    fi
    unset _NOHUP
    if [ "$USE_NOHUP" = "true" ]; then
        _NOHUP="nohup"
    fi
    
    # Add the JAVA 9 specific start-up parameters required by Tomcat
    JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang=ALL-UNNAMED"
    JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.io=ALL-UNNAMED"
    JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
    export JDK_JAVA_OPTIONS
    

    上述代码,[ -n "$JAVA_ENDORSED_DIRS" ]=falase, [ -d "$CATALINA_HOME/endorsed" ]=false, [ -z "$USE_NOHUP" ]=true,,此时变量变化如下:

    JAVA_OPTS="-Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027"
    USE_NOHUP="false"
    JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED"
    JDK_JAVA_OPTIONS="--add-opens=java.base/java.io=ALL-UNNAMED"
    JDK_JAVA_OPTIONS="--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
    

    代码块:

    # ----- Execute The Requested Command -----------------------------------------
    
    # Bugzilla 37848: only output this if we have a TTY
    if [ $have_tty -eq 1 ]; then
      echo "Using CATALINA_BASE:   $CATALINA_BASE"
      echo "Using CATALINA_HOME:   $CATALINA_HOME"
      echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
      if [ "$1" = "debug" ] ; then
        echo "Using JAVA_HOME:       $JAVA_HOME"
      else
        echo "Using JRE_HOME:        $JRE_HOME"
      fi
      echo "Using CLASSPATH:       $CLASSPATH"
      if [ ! -z "$CATALINA_PID" ]; then
        echo "Using CATALINA_PID:    $CATALINA_PID"
      fi
    fi
    
    

    上述代码没有做什么操作,只是打印了一些信息而已。
    调用此脚本的外部参数为start,故下述只看 [ $1 = start ]的代码块:

    if [ "$1" = "jpda" ] ; then
    略
    fi
    if [ "$1" = "debug" ] ; then
    略
    elif [ "$1" = "run" ]; then
    略
    elif [ "$1" = "start" ] ; then
    
      if [ ! -z "$CATALINA_PID" ]; then
        if [ -f "$CATALINA_PID" ]; then
          if [ -s "$CATALINA_PID" ]; then
            echo "Existing PID file found during start."
            if [ -r "$CATALINA_PID" ]; then
              PID=`cat "$CATALINA_PID"`
              ps -p $PID >/dev/null 2>&1
              if [ $? -eq 0 ] ; then
                echo "Tomcat appears to still be running with PID $PID. Start aborted."
                echo "If the following process is not a Tomcat process, remove the PID file and try again:"
                ps -f -p $PID
                exit 1
              else
                echo "Removing/clearing stale PID file."
                rm -f "$CATALINA_PID" >/dev/null 2>&1
                if [ $? != 0 ]; then
                  if [ -w "$CATALINA_PID" ]; then
                    cat /dev/null > "$CATALINA_PID"
                  else
                    echo "Unable to remove or clear stale PID file. Start aborted."
                    exit 1
                  fi
                fi
              fi
            else
              echo "Unable to read PID file. Start aborted."
              exit 1
            fi
          else
            rm -f "$CATALINA_PID" >/dev/null 2>&1
            if [ $? != 0 ]; then
              if [ ! -w "$CATALINA_PID" ]; then
                echo "Unable to remove or write to empty PID file. Start aborted."
                exit 1
              fi
            fi
          fi
        fi
      fi
    
      shift
      touch "$CATALINA_OUT"
      if [ "$1" = "-security" ] ; then
        if [ $have_tty -eq 1 ]; then
          echo "Using Security Manager"
        fi
        shift
        eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
          -D$ENDORSED_PROP="\"$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\"" \
          org.apache.catalina.startup.Bootstrap "$@" start \
          >> "$CATALINA_OUT" 2>&1 "&"
    
      else
        eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
          -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
          -classpath "\"$CLASSPATH\"" \
          -Dcatalina.base="\"$CATALINA_BASE\"" \
          -Dcatalina.home="\"$CATALINA_HOME\"" \
          -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
          org.apache.catalina.startup.Bootstrap "$@" start \
          >> "$CATALINA_OUT" 2>&1 "&"
    
      fi
    
      if [ ! -z "$CATALINA_PID" ]; then
        echo $! > "$CATALINA_PID"
      fi
    
      echo "Tomcat started."
    elif [ "$1" = "stop" ] ; then
    略
    elif [ "$1" = "configtest" ] ; then
    略
    elif [ "$1" = "version" ] ; then
    略
    else
    略
    fi
    

    上述非start外部传参的判断条件省略了。[ "$1" = "start" ]=true, [ ! -z "$CATALINA_PID" ]=false,此时代码走到 shift这里,由于只有一个外部传参start,故 [ "$1" = "-security" ]=false,此时进入 else 分支,执行下述命令:

     eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
          -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
          -classpath "\"$CLASSPATH\"" \
          -Dcatalina.base="\"$CATALINA_BASE\"" \
          -Dcatalina.home="\"$CATALINA_HOME\"" \
          -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
          org.apache.catalina.startup.Bootstrap "$@" start \
          >> "$CATALINA_OUT" 2>&1 "&"
    
    # 注:从setclasspath.sh得变量 
    # _RUNJAVA=/usr/java/jdk1.8.0_91/bin/java 
    # _RUNJDB=/usr/java/jdk1.8.0_91/bin/jdb 
    # 上述命令,将变量替换掉,为:
     /usr/java/jdk1.8.0_91/bin/java
     -Djava.util.logging.config.file=/usr/local/apache-tomcat-9.0.21/conf/logging.properties\ 
     -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
     -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources    -Dorg.apache.catalina.security.SecurityListener.UMASK=0027  \
          -D$ENDORSED_PROP=\
          -classpath /usr/local/apache-tomcat-9.0.21/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.21/bin/tomcat-juli.jar\
          -Dcatalina.base=/usr/local/apache-tomcat-9.0.21 \
          -Dcatalina.home=/usr/local/apache-tomcat-9.0.21 \
          -Djava.io.tmpdir=/usr/local/apache-tomcat-9.0.21/temp \
          org.apache.catalina.startup.Bootstrap start \
          >> /usr/local/apache-tomcat-9.0.21/logs/catalina.out 2>&1 &
    

    所以tomcat执行start.sh 脚本时,通常情况下 就是上述这么一个命令。你可以直接在命令行执行此命令:

    [root@test-cdh conf]# /usr/java/jdk1.8.0_91/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-9.0.21/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -D= -classpath /usr/local/apache-tomcat-9.0.21/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.21/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-9.0.21 -Dcatalina.home=/usr/local/apache-tomcat-9.0.21 -Djava.io.tmpdir=/usr/local/apache-tomcat-9.0.21/temp org.apache.catalina.startup.Bootstrap start >> /usr/local/apache-tomcat-9.0.21/logs/catalina.out 2>&1 &
    [1] 49852
    

    现在是不是觉得,写的很复杂的脚本,只是一条有较多java参数的命令而已,是不是顿时豁然开朗。

    附:上述有很多判断的语句,有一博文整理了,如下(链接为:https://blog.csdn.net/weixin_30367873/article/details/95135922):

    运算符	描述	示例
    文件比较运算符
    -e filename	如果 filename 存在,则为真	[ -e /var/log/syslog ]
    -d filename	如果 filename 为目录,则为真	[ -d /tmp/mydir ]
    -f filename	如果 filename 为常规文件,则为真	[ -f /usr/bin/grep ]
    -L filename	如果 filename 为符号链接,则为真	[ -L /usr/bin/grep ]
    -r filename	如果 filename 可读,则为真	[ -r /var/log/syslog ]
    -w filename	如果 filename 可写,则为真	[ -w /var/mytmp.txt ]
    -x filename	如果 filename 可执行,则为真	[ -L /usr/bin/grep ]
    filename1 -nt filename2	如果 filename1 比 filename2 新,则为真	[ /tmp/install/etc/services -nt /etc/services ]
    filename1 -ot filename2	如果 filename1 比 filename2 旧,则为真	[ /boot/bzImage -ot arch/i386/boot/bzImage ]
    字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
    -z string	如果 string 长度为零,则为真	[ -z "$myvar" ]
    -n string	如果 string 长度非零,则为真	[ -n "$myvar" ]
    string1 = string2	如果 string1 与 string2 相同,则为真	[ "$myvar" = "one two three" ]
    string1 != string2	如果 string1 与 string2 不同,则为真	[ "$myvar" != "one two three" ]
    算术比较运算符
    num1 -eq num2	等于	[ 3 -eq $mynum ]
    num1 -ne num2	不等于	[ 3 -ne $mynum ]
    num1 -lt num2	小于	[ 3 -lt $mynum ]
    num1 -le num2	小于或等于	[ 3 -le $mynum ]
    num1 -gt num2	大于	[ 3 -gt $mynum ]
    num1 -ge num2	大于或等于	[ 3 -ge $mynum ]
    
    
    展开全文
  • catalina.jar和websocket-api.jar---java开发html5必备包

    千次下载 热门讨论 2014-03-03 12:35:14
    catalina.jar和websocket-api.jar,java开发html5必备包
  • 六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server.服务器版本: Apache Tomcat/9.0.35 六月 16, 2020 4:54:18 下午 org.apache.catalina.startup....

    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Server.服务器版本: Apache Tomcat/9.0.35
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 服务器构建:        May 5 2020 20:36:20 UTC
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 服务器版本号(:     9.0.35.0
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 操作系统名称:      Windows 10
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: OS.版本:           10.0
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 架构:              amd64
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Java 环境变量:     D:\Program Files\Java\jdk1.8.0_221\jre
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: Java虚拟机版本:    1.8.0_221-b11
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: JVM.供应商:        Oracle Corporation
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: CATALINA_BASE:     D:\Program Files\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: CATALINA_HOME:     D:\apache-tomcat-7.0.70\apache-tomcat-9.0.35
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 命令行参数:-Dcatalina.base=D:\Program Files\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 命令行参数:-Dcatalina.home=D:\apache-tomcat-7.0.70\apache-tomcat-9.0.35
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 命令行参数:-Dwtp.deploy=D:\Program Files\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 命令行参数:-Djava.endorsed.dirs=D:\apache-tomcat-7.0.70\apache-tomcat-9.0.35\endorsed
    六月 16, 2020 4:54:18 下午 org.apache.catalina.startup.VersionLoggerListener log
    信息: 命令行参数:-Dfile.encoding=GBK
    六月 16, 2020 4:54:18 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    信息: 在java.library.path:[D:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Program Files/Java/jdk1.8.0_221/bin/../jre/bin/server;D:/Program Files/Java/jdk1.8.0_221/bin/../jre/bin;D:/Program Files/Java/jdk1.8.0_221/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\Program Files\Java\jdk1.8.0_221\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NGX;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\VanDyke Software\Clients\;C:\Users\86155\AppData\Local\Microsoft\WindowsApps;;C:\Users\86155\Desktop;;.]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能
    六月 16, 2020 4:54:18 下午 org.apache.coyote.AbstractProtocol init
    信息: 初始化协议处理器 ["http-nio-8080"]
    六月 16, 2020 4:54:19 下午 org.apache.catalina.startup.Catalina load
    信息: 服务器在[1,318]毫秒内初始化
    六月 16, 2020 4:54:19 下午 org.apache.catalina.core.StandardService startInternal
    信息: 正在启动服务[Catalina]
    六月 16, 2020 4:54:19 下午 org.apache.catalina.core.StandardEngine startInternal
    信息: 正在启动 Servlet 引擎:[Apache Tomcat/9.0.35]
    六月 16, 2020 4:54:22 下午 org.apache.jasper.servlet.TldScanner scanJars
    信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
    六月 16, 2020 4:54:22 下午 org.apache.catalina.core.ApplicationContext log
    信息: No Spring WebApplicationInitializer types detected on classpath
    六月 16, 2020 4:54:22 下午 org.apache.catalina.core.ApplicationContext log
    信息: Initializing Spring root WebApplicationContext
    六月 16, 2020 4:54:22 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
    信息: Root WebApplicationContext: initialization started
    六月 16, 2020 4:54:22 下午 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
    信息: Refreshing Root WebApplicationContext: startup date [Tue Jun 16 16:54:22 CST 2020]; root of context hierarchy
    六月 16, 2020 4:54:23 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    信息: Loading XML bean definitions from class path resource [book-context.xml]
    六月 16, 2020 4:54:23 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
    信息: Root WebApplicationContext: initialization completed in 1310 ms
    六月 16, 2020 4:54:24 下午 org.apache.catalina.core.ApplicationContext log
    信息: Initializing Spring FrameworkServlet 'rest'
    六月 16, 2020 4:54:24 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
    信息: FrameworkServlet 'rest': initialization started
    六月 16, 2020 4:54:24 下午 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
    信息: Refreshing WebApplicationContext for namespace 'rest-servlet': startup date [Tue Jun 16 16:54:24 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:24 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    信息: Loading XML bean definitions from ServletContext resource [/WEB-INF/rest-servlet.xml]
    六月 16, 2020 4:54:25 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
    信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'rest-servlet': startup date [Tue Jun 16 16:54:24 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:25 下午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
    信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'rest-servlet': startup date [Tue Jun 16 16:54:24 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:25 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
    信息: FrameworkServlet 'rest': initialization completed in 1883 ms
    六月 16, 2020 4:54:25 下午 org.apache.catalina.core.ApplicationContext log
    信息: Initializing Spring FrameworkServlet 'book'
    六月 16, 2020 4:54:25 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
    信息: FrameworkServlet 'book': initialization started
    六月 16, 2020 4:54:25 下午 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh
    信息: Refreshing WebApplicationContext for namespace 'book-servlet': startup date [Tue Jun 16 16:54:25 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:25 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    信息: Loading XML bean definitions from ServletContext resource [/WEB-INF/book-servlet.xml]
    六月 16, 2020 4:54:26 下午 org.springframework.web.servlet.DispatcherServlet initServletBean
    信息: FrameworkServlet 'book': initialization completed in 149 ms
    六月 16, 2020 4:54:26 下午 org.apache.jasper.servlet.TldScanner scanJars
    信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.ContainerBase startInternal
    严重: 子容器启动失败
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
    Caused by: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        ... 21 more
    Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        ... 33 more
    Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:184)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169)
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
        ... 34 more

    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.ContainerBase startInternal
    严重: 子容器启动失败
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器启动失败
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
    Caused by: org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        ... 13 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 21 more
    Caused by: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        ... 21 more
    Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        ... 33 more
    Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:184)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169)
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
        ... 34 more

    六月 16, 2020 4:54:26 下午 org.apache.catalina.startup.Catalina start
    严重: 所必需的服务组件启动失败,所以无法启动Tomcat
    org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器启动失败
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 13 more
    Caused by: org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:928)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        ... 13 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 21 more
    Caused by: org.apache.catalina.LifecycleException: 初始化组件[org.apache.catalina.webresources.JarResourceSet@49f6c25e]失败。
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:139)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:173)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:726)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4800)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4936)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
        ... 21 more
    Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:143)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        ... 33 more
    Caused by: java.util.zip.ZipException: error in opening zip file
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:184)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:169)
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:140)
        ... 34 more

    六月 16, 2020 4:54:26 下午 org.apache.coyote.AbstractProtocol pause
    信息: 暂停ProtocolHandler["http-nio-8080"]
    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.StandardService stopInternal
    信息: 正在停止服务[Catalina]
    六月 16, 2020 4:54:26 下午 org.apache.coyote.AbstractProtocol destroy
    信息: 正在摧毁协议处理器 ["http-nio-8080"]
    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.ApplicationContext log
    信息: Destroying Spring FrameworkServlet 'rest'
    六月 16, 2020 4:54:26 下午 org.springframework.web.context.support.XmlWebApplicationContext doClose
    信息: Closing WebApplicationContext for namespace 'rest-servlet': startup date [Tue Jun 16 16:54:24 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.ApplicationContext log
    信息: Destroying Spring FrameworkServlet 'book'
    六月 16, 2020 4:54:26 下午 org.springframework.web.context.support.XmlWebApplicationContext doClose
    信息: Closing WebApplicationContext for namespace 'book-servlet': startup date [Tue Jun 16 16:54:25 CST 2020]; parent: Root WebApplicationContext
    六月 16, 2020 4:54:26 下午 org.apache.catalina.core.ApplicationContext log
    信息: Closing Spring root WebApplicationContext
    六月 16, 2020 4:54:26 下午 org.springframework.web.context.support.XmlWebApplicationContext doClose
    信息: Closing Root WebApplicationContext: startup date [Tue Jun 16 16:54:22 CST 2020]; root of context hierarchy
     

    展开全文
  • MacOS Catalina降级Mojave

    千次阅读 2020-06-16 16:47:19
    将MacOS Catalina降级为Mojave准备工作 如今,制造商建议用户每天对其硬盘进行备份。这是为了保护他们的文件。如果要降级macOS而不丢失数据,则备份尤为重要。 但是说实话,如果我们开始谈论备份的重要性,我们将...

    有许多专用的Mac用户试图降级回Mojave。苹果公司几乎把新升级搞砸了,用户对此非常失望。因此,如果您属于其中之一,并希望返回到macOS Mojave,请阅读以下文章。

    将MacOS Catalina降级为Mojave准备工作

    如今,制造商建议用户每天对其硬盘进行备份。这是为了保护他们的文件。如果要降级macOS而不丢失数据,则备份尤为重要。

    但是说实话,如果我们开始谈论备份的重要性,我们将很快用尽所有理由。因此,请记住,最重要的原因是对您的宝贵数据的保护。

    • Mac可能会损坏。
    • 硬盘驱动器可能会发生故障。
    • 从SSD恢复文件将非常困难。
    • 您可能会丢失Mac。
    • 它可能被盗。
    • 恶意软件感染。

    因此,这些都是Mac可能发生的事故。在此过程中,您将丢失所有文件。因此,最好准备好备份文件。

    因此,在Mac上,您可以使用内置的Time Machine应用程序轻松创建硬盘备份。这是一个很棒的应用程序;完美地工作。在将macOS Catalina降级为Mojave之前,这是备份Mac的方法。

    步骤1:将外部驱动器连接到Mac。

    步骤2:屏幕上将出现一条警报,询问您是否要将此驱动器与Time Machine一起使用。选择“用作备份磁盘”。

    步骤3:如果上述警报未出现在屏幕上,则需要格式化外部驱动器。

    步骤4:建立连接后,选择“存储设备”并单击“使用磁盘”。

    现在,您只需要等待Time Machine创建备份文件并将其存储在外部驱动器上即可。

    MacOS Catalina降级为Mojave常见方法

    实际上,有两种降级macOS X的官方方法。这些过程非常简单,为用户方便地设计。我们来看一下;

    方式1.使用Time Machine将Mac OS Catalina降级到Mojave

    我们将要讨论的降级Mac的第一种方法是使用Time Machine备份。

    Time Machine是每台Mac设备上都内置的备份系统。因此,如果您使用Time Machine创建了备份文件,那么从Catalina降级到Mojave完全没有问题。

    步骤1:将Mac连接到互联网,然后点击“苹果”图标。

    第2步:从下拉菜单中选择“重新启动”。

    步骤3:随着Mac重新启动,同时按住Command和R键。“ OS X实用程序选择器”将打开。

    步骤4:选择“从Time Machine恢复”备份。点击“继续”继续。

    第5步:再次单击“继续”,然后选择Time Machine备份的“备份源”。

    步骤6:点击“继续”继续。现在,只需选择最新的“ macOS Mojave备份”,然后单击“继续”。

    Mac将立即开始从该Time Machine备份中还原。还原完成后,Mac将重新启动。

    方式2.使用USB驱动程序创建可启动的macOS Mojave安装程序

    这是降级macOS的常规方法。您只需从Mac擦除已安装的macOS 10.15 Catalina,然后再安装Mojave版本。

    以下是降级macOS Catalina的方法;

    步骤1:将Mac连接到互联网,然后点击“ Apple”图标。

    第2步:从下拉菜单中选择“重新启动”。

    步骤3:在Mac重新启动时,同时按住Command和R键。Mac将进入“恢复模式”。

    步骤4:然后,在“ OS X Utilities Selector”下单击“ Disk Utility”。点击“继续”继续。

    步骤5:选择“启动磁盘”,然后单击顶部的“擦除”选项卡。

    步骤6:您必须输入将要销毁的文件的名称,键入macOS Catalina。

    第7步:再次单击“擦除”,以完全从Mac擦除操作系统。

    现在,您已成功从Mac删除了macOS Catalina。现在该安装macOS Mojave了。您必须从App Store下载Mac上的macOS Mojave副本。复制该文件并使用它创建可引导驱动器。

    步骤1:与往常一样,将Mac连接到互联网并连接可启动驱动器。

    步骤2:点击“苹果”图标,然后从下拉菜单中选择“重新启动”。

    步骤3:在Mac重新启动时,按住“ Option”键,您将可以选择启动盘。

    步骤4:从那里,选择连接的可启动磁盘,然后macOS Mojave将开始在Mac上安装。

    步骤5:最后,在安装面板上单击“继续”,以完成安装。

    这是一个非常简单的过程,但是只要安装了macOS,就一定不要断开Mac与互联网的连接。

    展开全文
  • MacOS 10.15 Catalina:13个问题和修复

    千次阅读 2019-10-10 17:39:14
    如何修复macOS 10.15 Catalina问题 您好,寻求刺激的人。看起来您已经安装了macOS Catalina Beta,尽管它并没有所有警告,但它并不完美。你不是一个人。我们已经在互联网上翻遍,收集了迄今为止已知的所有macOS ...

    如何修复macOS 10.15 Catalina问题

    您好,寻求刺激的人。看起来您已经安装了macOS Catalina Beta,尽管它并没有所有警告,但它并不完美。你不是一个人。我们已经在互联网上翻遍,收集了迄今为止已知的所有macOS Catalina问题。而且男孩,有很多错误可以解决。

    1. 无法安装macOS Catalina
    2. Catalina重启后死机
    3. Catalina应用程式无法运作
    4. macOS Catalina运行缓慢
    5. Apple ID设置问题
    6. macOS Catalina上的Sidecar问题
    7. Catalina上的iCloud问题
    8. 音乐库冻结
    9. 通知太多
    10. 蓝牙在macOS Catalina上不可用
    11. Safari扩展程序停止工作
    12. 仓库无故装满
    13. iTunes XML文件危机

    1.无法安装macOS Catalina

    您已经打开了安装程序的包装,现在macOS Catalina更新在首次重新启动时卡住了。您所看到的只是一个黑屏,甚至硬重启也无济于事。尽管安装会花费一些时间(有时长达10个小时)是完全正常的,但是您可以尝试一些解决方法。

    • 以安全模式安装Catalina
    1. 按住电源键以关闭计算机。 
    2. 现在,在启动时按住Shift键。

      您会在带有进度条的灰色背景上看到Apple徽标。进入安全模式后,再次运行Catalina安装程序。希望这次能够完成。

    提示:在macOS安装的中间按Command +L。您将看到它是否仍然处于活动状态以及完成之前的剩余时间。

     

    • 进行PRAM和SMC重置

    它是那些恢复深度系统设置(包括内核信息)的最后解决方案之一。这不是您应该定期执行的操作,但是在我们的情况下,值得尝试。

    如何重置PRAM

    1.关闭计算机
    2.按电源键
    3.立即按Command + Option + P + R键
    4.按住键,直到Mac重新启动
    5.放开键


    重置SMC

    1.关闭Mac 
    2.按住Control + Shift + Option并按下电源
    3.按住按钮10-15秒钟
    4.释放键并重新启动Mac 

    完成后,从头开始重复安装macOS Catalina。

    • 释放驱动器上的空间

    macOS Catalina占用约30 GB的驱动器空间。这是macOS历史上前所未有的。当您看到“ 无法在Macintosh HD上安装macOS Catalina ”消息时,有时表示没有足够的磁盘空间用于新的macOS。因此,您需要释放Mac上的一些空间。

    如何释放空间?将最大的文件移动到外部驱动器上-大约需要20分钟。或者,如果看起来很麻烦,请使用CleanMyMac X释放存储空间。这是Apple实际公证的工具(不要与MacKeeper混淆)。 

     

    您将轻松删除7-10 GB的系统垃圾。然后,您可以在干净且刷新的驱动器上安装macOS Catalina。

    CleanMyMac-清理日志


    在这里,我找到了此应用程序免费版本的链接-享受。

    Catalina安装卡在“设置Mac”屏幕上

    因此,您的安装已经开始,但似乎停留在初始屏幕上。你能做什么?如果您的耐心终于消失了,那就该放弃任务了。

    1. 按下电源按钮,然后等待直到Mac重新启动。
    2. 重新开始安装-这次应该可以了。

    2. macOS Catalina重启后死机

    情况看起来是这样的:macOS Catalina已完成安装,并且在重新启动Mac后它停留在登录屏幕上。您会看到进度条,但进度条没有任何进展。该怎么办?

    正如一位用户指出的那样,该问题可能是由3d方内核扩展或kexts引起的。它们充当驱动程序(如果您喜欢Windows的类比),并可以访问Mac的硬件。

    • 解决方案:移动库扩展

    作为创可贴解决方案,您可以将/ Library / Extensions扩展名重新定位到备份文件夹。正如许多用户所确认的那样,此修补程序修复了macOS Catalina重启时卡住的问题。

    要执行此操作,您将需要终端应用程序:

    单击启动板>终端
    现在粘贴以下命令:

    mkdir ~/Extensions-Backup && sudo mv /Library/Extensions/* ~/Extensions-Backup/

    此命令将您的库扩展名重新定位到用户名/扩展名备份文件夹。以后,您可以将扩展名放回它们所属的位置:/ Library / Extensions。

    3. macOS Catalina应用程序无法正常工作

    应用程序未针对您的Mac优化  macOS catalina问题

    这是可追溯到macOS Mojave的macOS Catalina问题之一。您可能已经听说过,应用程序体系结构知道两种类型:32位和64位。macOS Catalina期间将不支持32位应用程序。可悲的是,它们不只是一些低保真独立应用程序,我们在谈论Photoshop!

    您是否知道: Apple指出64位应用程序可以更有效地使用内存,因此在Mac上可以更快地运行。

    • 检查您的32位应用程序 

    有一种快速的方法来计算您可能有问题的应用程序。 

    1. 单击苹果徽标>关于本机>系统报告
    2. 现在,在侧栏中找到“应用程序”。

    活动监视器:32位应用程序

    要更深入地了解您的应用程序,应用程序的来源以及占用的空间,请运行CleanMyMac X中的“卸载程序”工具。在此处下载此程序 -可免费下载。

    启动应用程序,然后单击“卸载程序”选项卡

    CleanMyMac-32位应用程序

    在这里,您可以查看自己的32位应用,并按“上次使用”对应用进行排序。

    例如,我找到了一个32位的视频编辑器,但我没有意识到在那里,它窃取了600 MB的空间。

    • 重置行为不当的应用

    如果某个特定的应用程序停止在macOS Catalina上运行,则可以使用CleanMyMac将其重置。此操作不会删除任何用户数据,只会将其恢复为默认状态。在十分之九的情况下,这有助于解决同步问题和突然的应用程序冻结。

    从卸载程序的列表中选择一个应用程序(请参见上面的屏幕截图)
    现在,单击“卸载”按钮下的下拉菜单。
    单击出现的“重置”按钮。

    • 更新您的应用程序

    考虑到各种macOS Catalina问题,一些开发人员已经针对新OS优化了其程序。转到开发者的网站并下载最新的可用版本。

    是的,我已经告诉过您有关CleanMyMac的信息,但是它似乎具有处理macOS更新的正确工具。它会自动更新Mac上的每个应用程序。尽管可能会花费一些时间,但这是调试macOS Catalina应用程序的明智方法。

    一旦你得到CleanMyMac X,点击侧边栏的更新选项卡。
    点击应用列表上方的全选。
    现在,单击更新。

    4. macOS Catalina运行缓慢

    可以预期,macOS Catalina上最常报告的问题与速度有关。一些后台进程正在占用CPU,最明显的是fileproviderd进程事实是,macOS 10.15 Catalina与与Web相关的流程(例如云存储)进行大量数据交换。这个过程有无数的粗糙边缘。

    禁用fileproviderd进程

    转到启动板>活动监视器

    活动监控

    在这里,您需要确定哪个进程正在消耗最多的资源。注意名为mdsfileproviderd的进程如果它们占用了80-100%的CPU,请尝试使用上方的[X]按钮将其关闭。

    禁用浏览器扩展

    浏览器扩展可能是许多macOS Catalina问题的元凶。保留最少的浏览器扩展,并查看Mac的反应。

    删除macOS Catalina中的扩展

    1.  

    5. Apple ID设置问题

    当Catalina提示您更新Apple ID详细信息时,就会发生这种情况。您输入了密码,但一段时间后弹出窗口再次出现。

    • 解决方案:在iCloud设置中启用钥匙串

    转到“系统偏好设置”>“ Internet帐户”>“ iCloud” 
    登录到您的帐户,然后检查使用iCloud的服务列表。 

    Apple ID设置Catalina

    勾选钥匙串,然后输入您的凭据。

    6. macOS Catalina上的Sidecar问题

    macOS Catalina的问题:边车无法正常工作


    Sidecar是一项功能,可以将iPad用作第二台显示器,从而使您的工作空间加倍。此处的常见问题是无法将iPad连接到计算机。首先,请确保在iPad上安装了iPadOS。然后,在Sidecar支持的型号列表中找到您的Mac:

    • 2015年末27英寸iMac 
    • 2017 iMac Pro
    • 2016年中的MacBook Pro 
    • 2018年末Mac mini 
    • 2018年末MacBook Air 
    • 2016年初MacBook 
    • 2019 Mac Pro

    如果您的Mac是2015年之前的产品,那么仍然可以启用Sidecar。

    打开终端并粘贴以下命令:

    defaults write com.apple.sidecar.display allowAllDevices -bool YES

    它成功了吗?不幸的是,不能保证此组合有效。

    • 删除旧的Wi-Fi连接

    如果您的Mac与Sidecar兼容,请使用电缆而不是无线连接来连接iPad。如果不起作用,请删除旧的wifi连接,然后尝试重新连接。 

    删除旧的Wi-Fi连接,您可以在CleanMyMac X中使用免费工具:

    运行CleanMyMac 
    单击侧边栏中的
    “ 隐私”选项卡。选择要删除的Wi-Fi网络。

    CleanMyMac-无线网络


    尝试重新连接iPad。

    7. macOS Catalina上的iCloud问题

    无法从iCloud下载文件夹

    iCloud集成是产生大量错误的弱点之一。此类macOS Catalina问题的修复已在进行中。 

    • 分别下载每个文件

    如果无法从iCloud下载文件夹,请分别下载每个文件。不幸的是,这是目前唯一可用的解决方法。

    您知道吗:iCloud数据的一部分存储在Google和Amazon数据中心上。

    无法在Catalina上接受iCloud条款和条件

    截至2019年10月,这一问题也得到了广泛报道。无论您接受多少次条件,法律免责声明都会不断出现。似乎出现此问题是因为您有多个设备连接到iCloud。

    icloud发行macos catalina

    • 转到系统偏好设置> Internet帐户。
    • 现在,单击“ iCloud”图标

    您应该看到“条款和条件”弹出窗口现在处于待处理状态。按接受。

    对所有iCloud帐户和您将在列表中看到的设备重复此过程。

    8.音乐库冻结

    iTunes一直是macOS上音乐的核心。移除后,事情很快就消失了。自iTunes的后继产品Music应用程序问世以来,许多人注意到他们的专辑插图丢失,音乐库冻结等

    。典型的情况是Mac表示其“更新音乐库”不断旋转,没有任何进展。该问题很可能是由于Mojave缓存过时以及以前的iTunes生态系统遗留下来的。 

    • 清空您的音乐文件夹 

    以及所有与音乐相关的库缓存。

    1. 备份音乐并将其移出“音乐”文件夹
    2. 打开〜/ Library并删除标题为“ Music”或“ iTunes”的所有项目
    3. 重复〜/ Library / Caches
    4. 重新启动您的Mac,看看它是否有效

    不要忘记将您的音乐专辑放回以前的状态。

    9.通知太多

    关于Catalina的通知过多

    转到系统偏好设置> Internet帐户现在,单击iCloud图标您应该看到``条款和条件''弹出窗口现在处于待处理状态。按接受,对您将在列表中看到的所有iCloud帐户重复此过程。

    转到系统偏好设置> Internet帐户现在,单击iCloud图标您应该看到``条款和条件''弹出窗口现在处于待处理状态。按接受,对您将在列表中看到的所有iCloud帐户重复此过程。

    新的macOS Catalina中的大量许可提示已经引起了许多用户的注意。升级到Catalina后,您会注意到,每个常规操作现在都需要您的明确批准-到2019年,大规模安全痴迷的陷阱

    。macOS Catalina甚至可以保护您的在线下载。现在,每个站点都要求“在Mac上安装”权限。具有讽刺意味的是,这正是Mac用户多年来在Windows中嘲笑的东西。

    不幸的是,目前还没有解决方法。 

    10.蓝牙在macOS Catalina上不可用

    如果您的蓝牙无法在macOS Catalina上运行,您可以执行一个简单的技巧。您应该尝试删除Bluetooth.plist文件。不用担心,它将自动创建自己的新副本。 

    1.单击查找器>转到>转到文件夹... 
    2.键入:Library/Preferences

    系统偏好


    现在,查找文件com.apple.Bluetooth.plist

    3.删除它,然后重新启动Mac。

    11. Safari扩展程序停止工作

    有某种Safari扩展名,即.safariextz文件已被macOS Catalina排除在支持范围之外。它们不再可以在“扩展”页面上安装,现在被认为是“旧版” 

    。RES,Ublock和Bitwarden是Safari用户在Catalina上会错过的一些著名扩展。苹果正在逐渐从公认的Web扩展格式(WebExtensions)转向与iOS兼容的扩展。 

    • 接受这个事实(或耐心等待)

    如果您缺少自己喜欢的广告拦截器或其他扩展程序,最简单的方法就是切换到其他浏览器。开发人员也有可能会检查其扩展以支持Safari 13,但我们所有人都必须等到这种情况发生后才能进行。

    12.仓库无故装满

    因此,您已升级到macOS Catalina,只是发现缺少大量可用空间。一些确定的文件夹正在占用您的存储空间,但是如何找到它呢?该问题可能与Time Machine备份以及存储在不同位置的APFS快照的克隆有关。 

    • 精简Time Machine快照

    您可以在CleanMyMac X中安全地执行此操作。
    下载该应用程序(免费版本的链接)并启动它。

    在CleanMyMac X中:

    单击维护选项卡,然后
    选择“ Time Machine快照细化


    作为手动解决方案,请在终端中粘贴以下命令:

    tmutil listlocalsnapshots / tmutil listlocalsnapshots /System/Volumes/Data

    这列出了您的Time Machine创建的本地快照。如果您准备删除这些内容,请输入以下内容:

    deletelocalsnapshots <snapshot_date> </snapshot_date>
    应该与快照名称中的日期匹配。

    对macOS 10.15 Catalina问题的一些通用修复

    1. 退出并重新启动/重新打开出现故障的应用程序或文档-解决了80%的问题
    2. 重新启动Mac,然后尝试以其他用户身份登录
    3. 检查您的Mac是否有隐藏的后台应用程序,然后将其禁用

    如何检查macOS Catalina的隐藏进程

    Mac上有许多在后台运行的所谓的守护程序或启动代理。它们可能是小型应用程序,例如Google Software Updater或通知计划程序,或者在最坏的情况下是广告脚本。应对它们的最佳方法是在macOS进程下浏览并禁用甚至可疑的任何东西。

    1. 推出CleanMyMac的免费版本 -针对macOS Catalina进行了优化
    2. 查找带有2个选项的速度工具优化和维护
    3. 单击启动代理
    4. 仔细研究您的记忆过程。运行启动代理也可以查看后台应用程序。另外,单击“大量消费者”,然后关闭不需要的任何物品。


    那就是我们对常见的macOS 10.15 Catalina问题的看法。某些事情告诉我们,一旦Catalina退出Beta版,就会有很多新发现的头痛问题。但是,如果您觉得自己遇到了许多不兼容性和错误,则可以随时返回并全新安装macOS Mojave。 

    13. iTunes XML危机

    随着iTunes成为历史,它的残余物不断追赶用户。显然,某些DJ应用程序一直依赖于一个特定的XML库文件,而该文件现在已经在iTunes中消失了。

    新的音乐应用程序本应提供一种手动解决方法,但事实并非如此。这严重破坏了地球上的DJ业务-直到Apple在下一个macOS Catalina更新中发布修复程序为止。

    受此影响的著名DJ应用是Traktor和Rekordbox。这个问题已经成为世界新闻,甚至被《福布斯》(Forbes)报道,所以解决方案有望在工作中进行。剩下的最后一个选择是降级到macOS Mojave ,以便您可以再次享受iTunes的荣耀。

    展开全文
  • catalina.bat 讲解

    千次阅读 2018-07-06 11:35:10
    Catalina.bat是tomcat所有脚本中最重要的脚本,完成几乎所有的tomcat操作。如启动,关闭等等,都是由catalina.bat脚本来完成的。接下来,我将对Tomcat catalina.bat脚本进行分析。   首先省去catalina.bat开头诸多...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 218,513
精华内容 87,405
关键字:

catalina

友情链接: ssd1303.rar