• 添加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
  • 相关阅读:
    【VS】解决Visual Studio无法登录的问题
    当vue 页面加载数据时显示 加载loading
    form 表单提交的另一种方式 js
    onclick="return doAlert()" onclick="return false"
    vue中sessionStorage的使用
    js把两个对象合并成一个对象
    Oracle 分页查询的一个实例
    oracle Group by 分组查询后,分页
    ProceedingJoinPoint获取当前方法
    Spring AOP无法拦截内部方法调用
  • 原文地址:https://www.cnblogs.com/xsbx/p/10173170.html
Copyright © 2020-2023  润新知