• 添加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
  • 相关阅读:
    PHP
    思科模拟器
    路由器
    服务器
    Windows Server 2008 笔记【瞎写】
    Day1 T3 数列
    java中自定义excel模板并且填充内容
    springMVC接收值list时,超过256出现IndexOutOfBoundsException
    java将日期转换成周几
    两个tomcat配置各自的SSL证书(前后端分离)
  • 原文地址:https://www.cnblogs.com/xsbx/p/10173170.html
Copyright © 2020-2023  润新知