Узнайте, какой Tomcat использует JDK или JAVA__HOME

Узнайте, какой Tomcat использует JDK или JAVA_HOME

В этой статье мы покажем вам, как узнать, какой JRE / JDK или JAVA_HOME используется контейнером Tomcat.

Окружающая обстановка :

  1. Debian 7.5

  2. Tomcat 7, установленный через apt-get

  3. JDK 6 и JDK 7

Note
Чтобы понять, как Tomcat выбирает, какой JDK запускать, обратитесь к сценарию запуска Tomcat -/etc/init.d/tomcat7. Обычно Tomcat использует JDK, настроенный в среде JAVA_HOME. Если JAVA_HOME не задан, Tomcat найдет случайный JDK из заранее определенного местоположения.

1. Tomcat Manager

Если менеджер Tomcat установлен, вам повезло, никаких действий не требуется, просто обратитесь к странице менеджера, текущая работающая JVM будет отображаться внизу.

tomcat-manager

Рис.: Страница диспетчера Tomcat

2. Скрипты запуска Tomcat

Найдите скрипт запуска Tomcat, отредактируйте его, чтобы распечатать значение JAVA_HOME. Для Tomcat, установленногоapt-get, сценарий запуска находится в/etc/init.d/tomcat7.

2.1 Edit sudo vim /etc/init.d/tomcat7, scroll down to the near bottom, find following patterns

/etc/init.d/tomcat7

#...
status)
    set +e
    start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
        --user $TOMCAT7_USER --exec "$JAVA_HOME/bin/java" \
        >/dev/null 2>&1
    if [ "$?" = "0" ]; then

        if [ -f "$CATALINA_PID" ]; then
            log_success_msg "$DESC is not running, but pid file exists."
            exit 1
        else
            log_success_msg "$DESC is not running."
            exit 3
        fi
    else
        log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
    fi
    set -e
        ;;

2.2 Append a simple text “using java – $JAVA_HOME”.

/etc/init.d/tomcat7

status)
    set +e
    start-stop-daemon --test --start --pidfile "$CATALINA_PID" \
        --user $TOMCAT7_USER --exec "$JAVA_HOME/bin/java" \
        >/dev/null 2>&1
    if [ "$?" = "0" ]; then

        if [ -f "$CATALINA_PID" ]; then
            log_success_msg "$DESC is not running, but pid file exists."
            exit 1
        else
            log_success_msg "$DESC is not running."
            exit 3
        fi
    else
        # START - UPDATE HERE!!!!!!!!!!!!!!

        log_success_msg "$DESC is running with pid `cat $CATALINA_PID`, using java - $JAVA_HOME"

        # END - UPDATE HERE!!!!!!!!!!!!!!
    fi
    set -e
       ;;

2.3 Save and exit. Попробуйтеtomcat7 status:

$ sudo /etc/init.d/tomcat7 status
[ ok ] Tomcat servlet engine is running with pid 10809, using java - /usr/lib/jvm/java-7-openjdk-amd64.
$ sudo service tomcat7 status
[ ok ] Tomcat servlet engine is running with pid 10809, using java - /usr/lib/jvm/java-7-openjdk-amd64.

Теперь опцияstatus распечатает, какой JDK используется Tomcat.