作为一个Java后端程序员(或准备成为Java后端程序员),对Tomcat一定要熟悉。
虽然大多数时候Tomcat都是运行在Linux服务器上的。
但是日常本地开发和调试时免不了要在我们的Windows电脑上安装一个Tomcat。
这篇文章就记录下安装Tomcat的操作,和遇到的一些小坑吧。
第一步:Tomcat下载
第一步当然是获取一个Tomcat的安装包啦!
下面是Tomcat7,8,9三个版本的官方下载地址。
- Tomcat 9
- Tomcat 8
- Tomcat 7
大家注意下载软件尽量要去官网下载哦(毕竟Tomcat又不要钱)。
我们下面以Tomcat8为例进行讲解(因为我就用的这个版本,为了偷懒!)
点击上面的 Tomcat 8进入Tomcat8下载页面。根据自己的系统是32还是64位,选择对应的zip包。(是的,Tomcat支持直接解压安装的,十分方便)
如下图所示:
下载好之后我们就可以解压了。比如我解压到了如下目录:
到这里,我们就做完第一步啦!
第二步:安装
其实下载完之后,我们距离启动起来Tomcat需要做的事情已经很少了。安装这一步主要是设置一下环境变量。有两个环境变量需要设置——JAVA_HOME和CATALINA_HOME。
JAVA_HOME就是Java的安装目录。啥,你说你还没安装JDK?快去下载一个。比如我的JDK安装在以下位置:
而Tomcat安装在下述位置:
那么我就设置JAVA_HOME为D:\Program Files\Java\jdk1.8.0_211。
设置CATALINA_HOME为D:\Program Files\apache-tomcat-8.5.50
具体如下图所示:
至于是设置系统环境还是用户变量,其实都可以。我这里设置的用户环境变量。
这一步就完啦,是不是越来越简单了!
第三步:设置为Windows服务
其实作为上述两步就可以启动Tomcat了。但我们为了以后使用的方便,直接将Tomcat设置为Windows服务。
这里需要通过命令提示符窗口执行Tomcat bin目录下的service.bat。按常规做法我们需要通过cd命令一步步进入tomcat的bin目录,十分麻烦。
所以,这里有个小技巧:
我们打开Tomcat的安装目录,进入bin文件夹,按住shift再点击右键,这时菜单里就出现了“在此打开命令提示符”(win7)或“在此打开PowerShell窗口”。
这样打开的“命令提示符”或“Powershell”窗口,默认的目录就是当前目录。
然后我们只需要执行以下命令:
service.bat install Tomcat8
就可以将Tomcat设置为Windows服务啦。这里的Tomcat8是我们指定的服务名,这个名字可以自己任意起,这里我习惯叫做Tomcat8。
注意如果是Win10系统,需要这么写:
.\service.bat install Tomcat8
我执行的情况如下:
可以看到最后一句Tes service 'Tomcat8' has been installed.说明我们安装成功啦!
同时输出的信息也可以看出我们之前设置的JAVA_HOME和CATALINA_HOME也起了作用。
第四步:启动
终于到了启动这一步啦。
上一步我们已经将Tomcat安装为Windows服务了,以后启动Tomcat就变的十分简单了。
上面我们将Tomcat安装为名为Tomcat8的系统了。只需要执行以下命令就可以启动Tomcat了。
net start Tomcat8
这个命令的执行就不需要必须在Tomcat目录下了。
如果你看到以下信息,就说明启动成功啦:
然后我们再在浏览器访问一下:http://localhost:8080/docs/。如果能看到以下页面就说明你安装成功啦:
遇到的坑
在之前看到文章中都说Tomcat启动起来后,访问localhost:8080/就可以看到管理界面。但对于我的情况,访问这个链接只得到了一个错误页面。
我一度以为是我的安装姿势不对。后来发现Tomcat已经启动起来了(访问localhost:8080/docs/可以看到正常页面)。
但我目前也没有搞清楚为什么localhost:8080/不能访问了,有知道的小伙伴希望能在评论区帮我解答一下。
附加操作1:取消设置Tomcat为Windows服务
如果我们不想让Tomcat作为Windows服务存在了,可以执行下以下命令:
(win7)
service.bat remove Tomcat8
(win10)
.\service.bat remove Tomcat8
附加操作2:停止Tomcat
上面说到了Tomcat的启动。如果想要将服务挺下来呢?只需要执行:
net stop Tomcat8
以上就是本文的全部内容了。如果你按上述步骤安装遇到了任何问题都希望能在评论区回复,我会尽我所知给大家解答。当然如果大家能顺手点个赞那就更好啦。