今天在虚拟机上装tomcat6  启动时候遇到问题:命令窗口闪一下就消失

在cmd里面运行startup.bat 得到

the java_home environment variable is not defined correctly

This environment variable is needed to run this program

NB: java_home should point to a jdk not a jre

意思是JAVA_HOME应该指向JDK而不是JRE

首先检查环境:

cmd里运行

输入javac跟java命令 正常

输入 if not exist "%JAVA_HOME%\bin\java.exe" echo "%JAVA_HOME%\bin\java.exe" 回车
结果:"C:\Program Files\Java\bin\java.exe"  也并没有分号,说明环境配置正确
那就应该是tomcat的问题,在网上查找了几种方式:
一:在catalina.bat中的 
set CURRENT_DIR=%cd%后加入一行 
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_13(因人而异) 
将你的当前JDK目录写死进去,运行成功,这样也省得你Tomcat自个儿去找了。这个方法其实很野蛮,但总比没办法好。 测试不成功
 
二:在setclasspath.bat的头部定义了JAVA_HOME和JRE_HOME的值,那么在这里手动设置JAVA_HOME变量

rem ---------------------------------------------------------------------------
rem Set CLASSPATH and Java options
rem
rem $Id: setclasspath.bat 505241 2007-02-09 10:22:58Z jfclere $
rem ---------------------------------------------------------------------------

set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_05
set JRE_HOME=C:\Program Files\Java\jre1.5.0_05

rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo At least one of these environment variable is needed to run this program
goto exit

......................................................................................................................................... 测试不成功

三:解决我这个问题的方法:

编辑startup.bat文件,在@echo off
if "%OS%" == "Windows_NT" setlocal 后加一句:
java -jar -Duser.dir="d:tomcat_6.0.14" "d:tomcat_6.0.14\bin\bootstrap.jar" start
保存,运行startup.bat,搞定。这个方法貌似是最暴力的方法。。。直接指定你tomcat路径然后直接启动服务。。。  测试成功

(网上搜到的)其他一些关于tomcat启动时的奇怪问题:
a.Tomcat无法从"开始"中启动,但可以在startup.bat中启动
JDK版本过低
b.启动的时候,加载信息的提示界面在屏幕上停留几秒钟就消失了,同时,tomcat的应用程序也自动关闭
在server.xml的最后,/host之上,应该写上的是:content
c.TOMCAT启动时有一些显示,但仍会自动关闭,无法启动.
可能是地址被占用,运行桌面上的"关闭TOMCAT"快捷方式,执行完毕后再启动TOMCAT.  
d.TOMCAT启动时一闪而过,无法启动.
可能是端口被占用,可找到TOMCAT的安装目录下的SERVER.XML文件,如..\EAM2003\conf\SERVER.XML,用记事本打开此文件,查找8080,如果找到,就将8080改为8088.
e.TOMCAT能正常启动,可见到登录界面,但登录不进系统
可能是IE的设置问题,将所有设置回复成默认设置,关闭"上网助手"或其他IE插件的"拦截弹出窗口"的功能.

最后:

解读startup.bat文件
@echo off      //DOS在运行批处理时,会依次执行批处理中的每条命令,并且会在显示器上显示,如果你不想让它们显示,可以加一个“echo off”。当然,“echo off”也是命令,它本身也会显示,如果连这条也不显示,就在前面加个“@”。
if "%OS%" == "Windows_NT" setlocal     //判断当前系统是否是window系统
rem ---------------------------------------------------------------------------   //rem 是注释(下同)
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $
rem ---------------------------------------------------------------------------
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%           //设置当前目录
if not "%CATALINA_HOME%" == "" goto gotHome //如果设置了CATALINA_HOME环境变量 ,就直接到下面的gotHome处
set CATALINA_HOME=%CURRENT_DIR% //如果没有设置CATALINA_HOME,就设置CATALINA_HOME为当前目录(其实这里她假设你进入tomcat的安装目录)
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome//判断一下catalina.bat是否找到了,找到了就直接到下面的gotHome处
cd .. //这里他是假设你开始已经进入到了tomcat的bin目录,所以就退到上一级目录
set CATALINA_HOME=%cd%//现在再设置CATALINA_HOME为tomcat的安装目录
cd %CURRENT_DIR% //这里是进入dos的当前目录
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome   //再次判断catalina.bat是否找到了,找到了就直接到下面的okHome处,没有的话,就只能提示你啦!
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat   //设置要执行的文件
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec //再次判断catalina.bat是否找到了,找到了就直接到下面的okExec处,没有的话,就提示。
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS= //这里是设置参数
:setArgs
if ""%1""=="""" goto doneSetArgs //判断参数是否加入完成
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //将参数组成一行,接在后面
shift
goto setArgs
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS% //执行catalina.bat,最好将这行改为:echo "%EXECUTABLE%" start %CMD_LINE_ARGS%       以便阅读、理解本文件的作用

转载于:https://blog.51cto.com/xleisoft/1132489

关于tomcat不能启动的问题(NB:JAVA_HOME should point to a JDK not a JRE)相关推荐

  1. JAVA_HOME should point to a JDK not a JRE的解决办法

    ---------这个问题挺常见的.主要是. JAVA_HOME should point to a JDK not a JRE 百度了一下,发现有许多解决办法.有些能行有些不行.因人而异. 这里说一 ...

  2. linux下tomcat无法启动

    在linux下安装好tomcat启动时报如下错误: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined  At ...

  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 mysql 启动顺序_linux 上配置tomcat、mysql 开机启动

    1.tomcat 开机启动 方法一.修改系统文件 (已经尝试,可以) 1.修改/etc/rc.d/rc.local vi /etc/rc.d/rc.local 2.添加下面两行脚本,记住是两行,仅仅第 ...

  5. java tomcat源码_详解Tomcat系列(一)-从源码分析Tomcat的启动

    在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知 ...

  6. CentOS 卸载OpenJdk和Tomcat开机启动

    1:查看java 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: [zhoujifeng@gz1-cdc-01 ~]$ java -version j ...

  7. java bat 启动脚本_解析Tomcat的启动脚本--catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

  8. uos配置 java 环境变量_CentOS 7.3 环境配置java和tomcat开机启动

    Centos7下添加开机自启动服务和脚本  https://blog.csdn.net/GMingZhou/article/details/78677953 安装部分参考我的博文,仅参考他的开机启动部 ...

  9. tomcat安装启动配置

    服务器: 服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快.负载更高.价格更贵),也可以指代用于部署网站的应用.我们这里说的服务器,其实是web服务器,或者应用服务器.它本质 ...

最新文章

  1. Transformer 代码完全解读!
  2. OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程
  3. 裸奔浏览器_【大数据早报】上网=“裸奔”?单凭浏览器历史记录就能锁定身份...
  4. 程序员体健康的各项指标是多少?
  5. 深入了解React新引擎:React Fiber
  6. Angular jasmine如何从detectChange触发refreshView进而执行到Component的hook实现
  7. Bing.com在.NET Core 2.1上运行
  8. 软件工程学习笔记《三》代码优化和性能测试
  9. Java设计模式笔记(3)抽象工厂模式
  10. html table vtop,PART2HTML语言.doc
  11. PostgreSQL9.6+PostGIS2.3学习笔记(一)导入shp文件
  12. 4.2 优化数据访问
  13. 十天入门php,十天学会PHP之第十天
  14. hadoop put命令的格式_【Hadoop篇】--Hadoop常用命令总结
  15. 离散数学复习二:空集、补集、德摩根定律、异或、广义交和广义并
  16. Toast基本使用方法
  17. 为什么很多新型编程语言都抛弃了 C 语言风格的 for 语句?
  18. 一个简单的多线程实现
  19. checking whether we are cross compiling... configure: error: in `/tmp/pip-build-rktAki/pycrypto解决方法
  20. Mac系统重装 “未能安装在您的电脑上 没有符合安装资格的软件包” 具体解决方案

热门文章

  1. axios_的请求响应结果的结构---axios工作笔记006
  2. 基于Session的认证方式_实现会话功能_Spring Security OAuth2.0认证授权---springcloud工作笔记117
  3. javax.net.ssl.SSLException: closing inbound before receiving peer‘s close_notif---SpringCloud工作笔记111
  4. 持续集成部署Jenkins工作笔记0011---配置构建命令并手动执行一次构建
  5. Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解
  6. EJB3.0学习笔记---Stateless Session Bean的原理:
  7. leetcode437. 路径总和 III
  8. bzoj1192 [HNOI2006]鬼谷子的钱袋
  9. mac下mysql重置密码及使用用户和密码登陆
  10. java中多叉树(tree)的生成与显示