原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。

一、问题场景:

我的软件和环境:

  • 操作系统:Windows 10
  • Tomcat版本:Tomcat 9.0.44(非安装版)
  • Java环境:JDK 1.8.0

需要下载 Tomcat 和 Java ,请转博文:https://jiming.blog.csdn.net/article/details/104713763

Tomcat启动、关闭方法:

  • 管理员身份打开cmd,进入 tomcat 目录下的 /bin,输入【startup.bat】指令,运行启动文件即可;
  • 关闭窗口,就相当于关闭本地 Tomcat 服务。

除了运行成功以外,当然也可能也会遇到某些异常,小编就遇到了这么一个,如下图所示:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program


二、原因分析:

错误提示的译文:

既没有定义JAVA_HOME,也没有定义JRE_HOME环境变量,运行此程序至少需要这些环境变量中的一个。

既然是环境变量加载不到,我们就简单概括的分析一下,Tomcat 在哪里需要加载JDK环境变量:

  • 先来看看 startup.bat 文件,因为 Tmocat 启动会第一个调用它 →

  • startup.bat 调用了 catalina.bat,一起来看看 →

  • catalina.bat 则调用了 setclasspath.bat,额嗯,重点就在这里了!!

整个调用链路:启动文件startup.bat → catalina.bat → setclasspath.bat,setclasspath.bat 里读取系统的环境变量。

做程序员都知道的,配置系统的JAVA【环境变量】。如果“JAVA_HOME”和“JRE_HOME”本身为空,在系统变量中又找不到,就会出现标题中的问题,导致 Tomcat 启动失败。


三、解决办法:

我总结了2种解决方法,原理上是一致的,都是为了让Tomcat启动时能够加载到系统的JAVA环境变量。

  • 方法1,是你搜同类问题时,其他博客中普遍介绍的一种,很直接很暴力很有效;
  • 而方法2,我认为是最正统的从根本上解决问题的方法。

1. 直接修改 setclasspath.bat 文件:

因为启动 Tomcat 会调用 Tomcat 安装文件中的 “startup.bat”,“startup.bat” 调用了 “catalina.bat”,而它调用了 “setclasspath.bat”,而“setclasspath.bat” 会读取环境变量,因此只要在 “setclasspath.bat” 的开头手动声明环境变量即可;

如:我的Java 1.8.0 安装在了 D:\Program Files\Java\ 目录下

set JAVA_HOME=D:\Program Files\Java\jdk1.8.0_191
set JRE_HOME=D:\Program Files\Java\jdk1.8.0_191\jre

2. 配置JAVA的系统环境变量

右键点击【我的电脑】→选择【属性】→找到【高级系统设置】→进入【环境变量】设置界面...

小伙伴们是不是非常熟悉,没错,新装机的时候,我们都是这么配置JAVA的系统环境变量的,因为之前没有配置,一直使用IDE的默认JDK,所以引发了上述问题

在这里,我们需要配置两个参数:JAVA_HOME 和 Path

  • JAVA_HOME:D:\Program Files\Java\jdk1.8.0_191(你安装的JDK的磁盘路径)

  • Path:%Java_Home%\bin;%Java_Home%\jre\bin;

配置完成以后,重新启动 Tomcat 即可,下面是启动成功的cmd日志,至于Tomcat日志会弹出新的终端显示。

the end ,thank you...


我是 IT无知君,您的点赞、评论和关注,是我不懈创作的动力。
学无止境,气有浩然,让我们一起加油,天涯未远,江湖有缘再见!!

启动 Tomcat 遇到 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 问题,已解决相关推荐

  1. 解决Linux下启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined...

    找不到JAVA_HOME路径,需要做以下变更: 找到启动路径所在的目录: cd bin/ vi catalina.sh 加入以下信息: export JAVA_HOME=/home/gongzi/ht ...

  2. centos7.3安装tomcat报Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    原来在Linux使用Tomcat不输工程使用的是新创建的用户非ROOT权限创建的,但可能会碰到一种情况,在这种用户身份下启动工程后,关闭SSH工具,工程便无法访问,于是需要换到root来执行,但会出现 ...

  3. pssh批量执行启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    文章目录 问题描述 问题分析 解决问题 问题描述 我这边一共4台主机,4台主机tomca路径一致.我想想通过pssh命令工具直接将4台主机的tomcat启动,命令如下: [root@hadoop-ma ...

  4. Tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    Tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 今天在linxu环境Tomcat下部 ...

  5. Tomcat服务器环境配置--查看bat文件(解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题)

    1. Tomcat环境配置 环境变量配置,博主以为无非就是在系统变量[path]中加上Tomcat目录的bin文件夹路径呗,然后上网一搜,果然就是配置Tomcat的bin目录和lib目录,于是在系统变 ...

  6. linux安装tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    这两天我们的开发机重启了好几次,发现每次重启后我的tomcat总是没有启动. 检查java路径,配置正确,后来拿普通账号启动tomcat时报如下的错: 1 Neither the JAVA_HOME ...

  7. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 完美解决(tomcat error)

    error: Linux下启动和关闭tomcat报错,如下图所示: Neither the JAVA_HOME nor the JRE_HOME environment variable is def ...

  8. jenkins 远程启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    异常现象: jenkins 远程启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 解决 ...

  9. 解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题

    问题描述: 在cmd窗口使用 startup 命令启动Tomcat时,出现 Neither the JAVA_HOME nor the JRE_HOME environment variable is ...

  10. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

    Centos7.5  启动tomcat报错 报错: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At ...

最新文章

  1. 百度云满速下载(转)
  2. mysql having子句_mysql having子句学习
  3. Mule ESB,ActiveMQ和DLQ
  4. 2899紫金矿业和1862澳华黄金一直都是我的重仓品种啊
  5. python大作业代码_大二期末python大作业有效代码不低于5000行是什么水平?
  6. java.lang.IllegalArgumentException: Must specify o
  7. Error: Can’t resolve ‘./src’ in ‘E:\ASUS\Documents\VSCode files\WebPackProject’
  8. qq 实现连接内网_如何穿透内网稳定进行远程桌面?花生壳盒子来搞定
  9. BZOJ 2560(子集DP+容斥原理)
  10. XMarks 书签王者
  11. java-mail.jar_mail.jar-Mail.jar下载 --pc6下载站
  12. 2020淘宝双11最强星秀猫怎么玩 怎么退出队伍你知道吗
  13. xp系统如何开启ftp服务器,xp系统怎么开ftp服务器
  14. 通达OA任意用户登录漏洞手工复现
  15. 又一北京“假名媛”曝光,蹭吃蹭喝21天,暴露人性最真实一面
  16. 如何使用typora来写博客?
  17. powershell下使用linux命令,Win10系统下使用Windows PowerShell运行ABD命令的方法
  18. 一起赚美元⑥ | 创立Discourse开源论坛软件每月赚取12万美元的故事
  19. 解决Android Studio连接不上逍遥模拟器的问题
  20. LibreCAD for windows 编译

热门文章

  1. 计算机excel保留一位小数,excel表格数据取一位小数-excel保留一位小数
  2. 医疗CT断层图像DICOM标准和工业CT断层图像DICONDE标准
  3. Android Studio的安装与配置
  4. mysql 后缀 deleted,MySQL · 特性分析 · (deleted) 临时空间
  5. Docker真实应用场景案例解析——ASSA ABLOY
  6. matlab泰勒展开样例,MATLAB绘图样例
  7. FreeMarker常见指令的简单介绍—快速入门(二)
  8. 学计算机的人掉头发吗,学计算机真的会秃顶吗?为什么?
  9. wav用matlab打不开,Matlab如何读取wav文件,为什么wavread不行啊
  10. linux系统双显卡切换显卡驱动,Ubuntu安装并切换Nvidia双显卡驱动的方法