我正在为 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)
答案1
我建议您采用一种可靠的方法将 Tomcat 绑定到特定版本的 JDK。在 tomcat_location_dir/bin 子目录下您可以找到 setenv.sh
文件。通过添加行来修改它:
JAVA_HOME=/path/to/desired/jdk_home
然后(重新)启动 tomcat 服务。这只会影响该 tomcat 实例。顺便说一句,这是设置特定 tomcat 环境的推荐方法。
重要提示:如果有疑问,请确保您拥有 JDK 版本而不仅仅是 JRE,只需从以下位置下载合适的 tar/zip http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html然后解压到上面提到的 /path/to/desired/jdk_home