今天分别在一台局域网的服务上和一台外网的服务器上安装tomcat,没想到在两台机子上安装之后竟然都启动不了。
在内网机器上报的错误如下:
2008-03-17 16:02:20] [174 javajni.c] [error] 找不到指定的模块。
[2008-03-17 16:02:20] [986 prunsrv.c] [error] Failed creating java C:/Program Files/Java/jdk1.6.0/jre/bin/server/jvm.dll
[2008-03-17 16:02:20] [1260 prunsrv.c] [error] ServiceStart returned 1
赶紧google了一下,找到了问题所在,原来是在syste32下少了msvcr71.dll文件,于是从tomcat的bin目录下将该文件拷贝到system32下,成功启动。
在外网的机器上则报错如下:
FindClass org/apache/catalina/startup/Bootstrap failed
本以为跟前一台机器一样,也是少了msvcr71.dll文件,但是在system32下该文件却是存在的。于是继续google,网上很多人回答竟然都是可能是在system3下缺少msvcr71.dll文件,明显不符合我的情况。无奈之下,忽然想到这台机器上的ldap也启动不了,而且报的错是jvm terminated之类的错误,因而想到应该是java环境变量的问题。看了一下path环境变量的值,
E:/oracle/ora92/bin;D:/Program Files/Oracle/jre/1.3.1/bin;D:/Program Files/Oracle/jre/1.1.8/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;D:/Program Files/Microsoft SQL Server/90/Tools/binn/;D:/Program Files/Microsoft SQL Server/80/Tools/Binn/;D:/Program Files/Microsoft SQL Server/90/DTS/Binn/;D:/Program Files/Microsoft SQL Server/90/Tools/Binn/VSShell/Common7/IDE/;D:/Program Files/Java/jdk1.6.0_10/bin;D:/Program Files/Microsoft Visual Studio 8/Common7/IDE/PrivateAssemblies/;D:/Program Files/Common Files/Thunder Network/KanKan/Codecs;D:/Program Files/Subversion/bin;D:/Program Files/TortoiseSVN/bin;D:/Program Files/CVSNT;D:/Program Files/Microsoft SQL Server/100/DTS/Binn/;D:/Program Files/Microsoft SQL Server/100/Tools/Binn/
发现在D:/Program Files/Java/jdk1.6.0_10/bin;之前已经有一个E:/oracle/ora92/bin;D:/Program Files/Oracle/jre/1.3.1/bin;的环境变量,因此,系统运行的时候肯定会首先选择的Oracle的jre了 ,把java的移动到oracle的前面就可以了。