zip版tomcat(6,7)不能注册成windows服务或者注册后不能启动的问题解决
2011-05-09 22:16
323 查看
在日常的开发中,经常要使用到tomcat,一般情况下,我们只需要下载zip版的tomcat,并在ide中进行配置即可。而不需要将tomcat注册成服务,但在部署中,如果需要将tomcat部署到客户机器上时,就会出现一定问题了。
一般情况下,如果要部署成服务的形式,就需要下载专门的windows安装版(一个exe的安装文件),在windows下进行安装。而这种安装
版,有一个问题就是,它默认的服务名就是tomcat6或tomcat7,而不能手动的进行修改。如果需要安装多个tomcat,就不能使用安装版了。在
这种情况下,我们一般是下载zip版的tomcat,通过service.bat的方式来将tomcat注册成服务。
一般情况下,注册成服务的tomcat并不能启动,问题有很多种。我就在实际过程中发现的问题,一一列举出来,以方便碰到此问题的同学一起解决这个问题。
第一个问题:如果注册服务都注册不成功,则首先要检查注册服务所使用的命令能否检测到所安装的java。这个检查只需要查看命令行是否出现以下字样即可:
如果出现以下字样,则表示已经检测到了java。
第二个问题:网上经常说的msvcr71.dll和msvcp71.dll。这两个dll文件只需要放到windows的path环境变量可以找到的地方即可,并不需要特别的放到某一个特殊的地方。
查看这个文件是否能够被找到的一个很简单的方法,即是在命令行输入这两个文件,如:
如果windows找到了这个文件,则就会弹出一个如何打开文件的对话框,请求你如果打开这个文件。这就表示windows已经找到了这个文件。
当然,如果把这两个文件都copy到tomcat的bin目录下,也是一种解决方法(没做过测试)
第三个问题:java版本和tomcat版本问题。
这里说的版本问题并不简单地是一个jre5和jre6的问题,一般来说,安装tomcat6需要jre5,安装tomcat7需要jre6,这都是常识的问题。
特殊的问题就是:你的tomcat版本需要和jvm的版本相一致。
我碰到这个问题,总是找不到解决问题的方法,最后发现,如果将安装版里的
tomcat.exe文件copy至zip版的bin目录,并覆盖原tomcat.exe文件,服务就能够正常启动,但它自带的zip版的
tomcat.exe死活不能启动,查看了两个exe的区别,除了大小不一样,其它的配置都一样。我注意到一个问题,就是官方对于安装版的tomcat,
说明它可以试用于win32系统,也可以试用于64位系统,这就是问题的关键。
我机器上的java版本是64位的,而下载的zip版tomcat是32位的,在启动tomcat时,会在logs目录下的jakata-service.log文件中出现以下内容:
表示不能启动jvm。当我通过修改服务的注册表,将其使用时使用的jvm换成32位的jvm时,服务就启动了。这就表示,zip版的
tomcat需要根据jvm来下载不同的zip。在官方下载中,确实看到了zip版的tomcat有32位和64位之分,我下载64位的tomcat下
来,注册成服务之后,tomcat直接启动成功。看来确实是jvm适用系统版本和tomcat适用系统版本不一致的问题。
当然,在开发过程中,我们都是使用startup.bat来启动tomcat,这里面就没有涉及到exe的问题,实际上就是调用java来启动
tomcat,因此这个问题不会出现。其实32位tomcat和64tomcat的区别,就在于它提供的tomcat.exe的不同。
一般情况下,如果要部署成服务的形式,就需要下载专门的windows安装版(一个exe的安装文件),在windows下进行安装。而这种安装
版,有一个问题就是,它默认的服务名就是tomcat6或tomcat7,而不能手动的进行修改。如果需要安装多个tomcat,就不能使用安装版了。在
这种情况下,我们一般是下载zip版的tomcat,通过service.bat的方式来将tomcat注册成服务。
一般情况下,注册成服务的tomcat并不能启动,问题有很多种。我就在实际过程中发现的问题,一一列举出来,以方便碰到此问题的同学一起解决这个问题。
A service specific error occurred: 0. More help is available by typing NET HELPMSG 3547.
第一个问题:如果注册服务都注册不成功,则首先要检查注册服务所使用的命令能否检测到所安装的java。这个检查只需要查看命令行是否出现以下字样即可:
Installing the service 'Tomcat6' ... Using CATALINA_HOME: E:/javaServer/tomcat6utf8 Using CATALINA_BASE: E:/javaServer/tomcat6utf8 Using JAVA_HOME: C:/jdk1.6.0_24 Using JVM: C:/jdk1.6.0_24/jre/bin/server/jvm.dll The service 'Tomcat6' has been installed.
如果出现以下字样,则表示已经检测到了java。
第二个问题:网上经常说的msvcr71.dll和msvcp71.dll。这两个dll文件只需要放到windows的path环境变量可以找到的地方即可,并不需要特别的放到某一个特殊的地方。
查看这个文件是否能够被找到的一个很简单的方法,即是在命令行输入这两个文件,如:
E:/javaServer/tomcat6utf8/bin>msvcr71.dll
如果windows找到了这个文件,则就会弹出一个如何打开文件的对话框,请求你如果打开这个文件。这就表示windows已经找到了这个文件。
当然,如果把这两个文件都copy到tomcat的bin目录下,也是一种解决方法(没做过测试)
第三个问题:java版本和tomcat版本问题。
这里说的版本问题并不简单地是一个jre5和jre6的问题,一般来说,安装tomcat6需要jre5,安装tomcat7需要jre6,这都是常识的问题。
特殊的问题就是:你的tomcat版本需要和jvm的版本相一致。
我碰到这个问题,总是找不到解决问题的方法,最后发现,如果将安装版里的
tomcat.exe文件copy至zip版的bin目录,并覆盖原tomcat.exe文件,服务就能够正常启动,但它自带的zip版的
tomcat.exe死活不能启动,查看了两个exe的区别,除了大小不一样,其它的配置都一样。我注意到一个问题,就是官方对于安装版的tomcat,
说明它可以试用于win32系统,也可以试用于64位系统,这就是问题的关键。
我机器上的java版本是64位的,而下载的zip版tomcat是32位的,在启动tomcat时,会在logs目录下的jakata-service.log文件中出现以下内容:
[2011-03-31 12:00:45] [174 javajni.c] [error] %1 is not a valid Win32 application. [2011-03-31 12:00:45] [994 prunsrv.c] [error] Failed creating java C:/jdk1.6.0_24/jre/bin/server/jvm.dll [2011-03-31 12:00:45] [1269 prunsrv.c] [error] ServiceStart returned 1
表示不能启动jvm。当我通过修改服务的注册表,将其使用时使用的jvm换成32位的jvm时,服务就启动了。这就表示,zip版的
tomcat需要根据jvm来下载不同的zip。在官方下载中,确实看到了zip版的tomcat有32位和64位之分,我下载64位的tomcat下
来,注册成服务之后,tomcat直接启动成功。看来确实是jvm适用系统版本和tomcat适用系统版本不一致的问题。
当然,在开发过程中,我们都是使用startup.bat来启动tomcat,这里面就没有涉及到exe的问题,实际上就是调用java来启动
tomcat,因此这个问题不会出现。其实32位tomcat和64tomcat的区别,就在于它提供的tomcat.exe的不同。
相关文章推荐
- zip版tomcat(6,7)不能注册成windows服务或者注册后不能启动的问题解决
- 转:zip版Tomcat(6,7)不能注册成windows服务或者注册后不能启动的问题解决
- Mac端口转发解决eclipse/idea/tomcat不能启动80端口的问题
- 解决Tomcat不能访问首页的问题,eclipse中tomcat能正常启动
- Apache2+Tomcat7配置很详细(解决服务不能启动问题Tomcat7解压版)
- 解决tomcat服务器下,只能通过localhost,而不能通过127.0.0.1或者本地ip地址访问的问题
- 解决Eclipse不能启动Tomcat问题
- Tomcat启动时一闪而过,但是jdk环境变量配置正确,并使用java或者javac命令多可以运行,但是tomcat不能运行解决办法。
- 迅速解决resin或者tomcat启动闪一下就消失的问题
- 解决 Win7 下 Tomcat7 作为 service 启动 外网不能访问的问题
- 迅速解决resin或者tomcat启动闪一下就消失的问题
- windows服务启动tomcat内存溢出问题解决方案
- 迅速解决resin或者tomcat启动闪一下就消失的问题
- 解决tomcat服务器下,只能通过localhost,而不能通过127.0.0.1或者本地ip地址访问的问题
- 非安装版Tomcat不能手动启动问题解决
- tomcat启动时,不带项目名,启动两次或者造成端口冲突问题解决
- tomcat在XP或者win7下面不能启动的问题
- 解决 Tomcat Server in Eclipse unable to start within 45 seconds 不能启动的问题
- 解决tomcat不能启动的问题(8005端口被占用)
- 解决tomcat服务器下,只能通过localhost,而不能通过127.0.0.1或者本地ip地址访问的问题