添加tomcat开机启动服务时报错:Neither the JAVA_HOME nor the JRE_HOME enviromment variable is defined

Posted 昔时半夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加tomcat开机启动服务时报错:Neither the JAVA_HOME nor the JRE_HOME enviromment variable is defined相关的知识,希望对你有一定的参考价值。

首先,参考的 https://blog.csdn.net/wabil/article/details/78818249 的方式添加 tomcat 开机启动,这种方式不需要添加 setenv.sh 文件,轻量级,非常方便,具体方式如下:

1. 创建一个服务文件

vim /lib/systemd/system/tomcat.service

复制如下内容,修改后保存:
[Unit]
Description=tomcat
After=network.target

[Service]
Type=oneshot
ExecStart=/home/apache-tomcat-7.0.70/bin/startup.sh // 自已的tomcat目录
ExecStop=/home/apache-tomcat-7.0.70/bin/shutdown.sh // 自已的tomcat目录
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

2. 启动服务

systemctl start tomcat.service

执行这步的时候,始终报启动失败,执行下面步骤查看失败原因。

3. 查看服务状态

systemctl status tomcat.service

 没理由 JAVA_HOME 和 JRE_HOME 不存在啊,明明是存在的,检查一下发现确实是存在的:

 

解决方法:

方法1. 在 tomcat/bin/setclasspath.sh 中添加 JAVA_HOME 和 JRE_HOME 的指向(试了一下,不知道什么原因没搞成功)

18 # -----------------------------------------------------------------------------
19 #  Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings
20 #  are valid and consistent with the selected start-up options and set up the
21 #  endorsed directory.
22 # -----------------------------------------------------------------------------
23 #
24 # JAVA_HOME=/usr/java/jdk1.8.0_171
25 # JRE_HOME=/usr/java/jdk1.8.0_171/jre

 方法2. 在 tomcat.service 中添加 JAVA_HOME 和 JRE_HOME 的指向(推荐)

Environment=\'JAVA_HOME=/usr/java/jdk1.8.0_171\'
Environment=\'JRE_HOME=/usr/java/jdk1.8.0_171/jre\'

此时再次执行服务启动命令 systemctl start tomcat.service 成功,服务运行状态如下:

 附完整的 tomcat.service 文件

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
Environment=\'JAVA_HOME=/usr/java/jdk1.8.0_171\'
Environment=\'JRE_HOME=/usr/java/jdk1.8.0_171/jre\'
ExecStart=/opt/my/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/opt/my/tomcat/shutdown.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

 4. 设置为开机启动

systemctl enable tomcat.service

 

以上是关于添加tomcat开机启动服务时报错:Neither the JAVA_HOME nor the JRE_HOME enviromment variable is defined的主要内容,如果未能解决你的问题,请参考以下文章

linux环境启动tomcat时报Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 的解决方案

用Maven管理jar包后启动Tomcat时报错

启动tomcat时报错 org.apache.coyote.http11.Http11AprPr...

用Eclipse的tomcat插件启动tomcat时报错:

linux tomcat 启动报错 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least on

Tomcat停止时报错(java.net.ConnectException: 拒绝连接 (Connection refused))