Tomcat 不仅会读取系统环境变量,还会从注册表中获取想要的值,太蛋疼。
所以我把 JDK 的 3个版本都卸载了之后开始做测试。
结果是找不到 JRE_HOME 找不到 jvm.dll,但服务还是注册成功了,只是无法启动。
由此可见 Tomcat 即使是注册成服务还是依赖于 JRE 的。
rem Try to use the server jvm
set "JVM=%JRE_HOME%\bin\server\jvm.dll"
if exist "%JVM%" goto foundJvm
rem Try to use the client jvm
set "JVM=%JRE_HOME%\bin\client\jvm.dll"
if exist "%JVM%" goto foundJvm
echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME.
然后,改动一下 service.bat
set localset
"JRE_HOME=D:\Project\EAInstaller\Files\jre6"
这样就能找到 JRE_HOME 了,这样 net start Tomcat7(服务名貌似不区分大小写),也能正常启动了。
如果注册成功后,将注册是的 JRE_HOME 给删除了的话,
注意服务启动时是删不掉了,stop 之后再删除,然后 tomcat7 又服务启动了。
系统如何保存这个 jre 路径的应该涉及到 windows 底层的知识了,没学过,就到这了。