Centos

刪除 OpenJDK/JRE 並安裝 Oracle JDK,現在 Tomcat 失敗

  • October 18, 2017

我正在為 Tomcat 執行 Centos7 系統。使用 Tomcat 8.5 和 OpenJDK 一切正常,但開發人員希望使用 Oracle JDK。所以,我yum autoremove是 JDK 文件,然後從 Oracle 下載了 JDK-9.0.1 和 JRE-9.0.1 的 RPM。現在,我似乎無法讓 Tomcat 再次工作。

● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2017-10-18 11:33:07 PDT; 10s ago
Process: 6525 ExecStop=/bin/kill -15 $MAINPID (code=exited, status=1/FAILURE)
Process: 6513 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1055 (code=exited, status=143)

Oct 18 11:33:07 tomcat_base1 systemd[1]: Starting Apache Tomcat Web Application Container...
Oct 18 11:33:07 tomcat_base1 startup.sh[6513]: Existing PID file found during start.
Oct 18 11:33:07 tomcat_base1 startup.sh[6513]: Removing/clearing stale PID file.
Oct 18 11:33:07 tomcat_base1 systemd[1]: tomcat.service: control process exited, code=exited status=1
Oct 18 11:33:07 tomcat_base1 systemd[1]: Failed to start Apache Tomcat Web Application Container.
Oct 18 11:33:07 tomcat_base1 systemd[1]: Unit tomcat.service entered failed state.
Oct 18 11:33:07 tomcat_base1 systemd[1]: tomcat.service failed.

看起來新的 Java 安裝正確:

java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

我建議您將 Tomcat 綁定到特定版本的 JDK 的可靠方法。在 tomcat_location_dir/bin 子目錄下你可以找到 setenv.sh 文件。通過添加以下行來修改它:

JAVA_HOME=/path/to/desired/jdk_home

然後(重新)啟動tomcat服務。這只會影響這個tomcat實例。順便說一句,這是設置特定 tomcat 環境的推薦方法。

重要提示:如果有疑問,請確保您擁有 JDK 版本而不僅僅是 JRE,只需從 http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html 下載合適的 tar / zip解壓到上面提到的/path/to/desired/jdk_home

引用自:https://unix.stackexchange.com/questions/398949