前言:java
驗證tomcat安裝成功apache
安裝以後:瀏覽器
1.到安裝目錄下找startup.bat不閃退,並出現如下圖2爲成功安裝:tomcat
再打開谷歌瀏覽器輸入: localhost:8080驗證.服務器
一、解決Tomcat8啓動時控制檯中文亂碼問題(不止是版本8,其餘版本依舊適用)架構
從Tomcat官網上下載下來的Tomcat,在初次運行【 bin\startup.bat】 時,控制檯窗體會出現下圖所示的中文亂碼。編輯器
通過查看分析,應該是Tomcat的log日誌模塊在記錄時出現了中文字符不識別的問題。svn
在Tomcat的啓動文件「catalina.bat」中約215行能夠看到以下:測試
若是沒有設置"%LOGGING_CONFIG%"值,則.......。ui
到Tomcat根目錄下「conf」子目錄下的「logging.properties」文件中查看日誌記錄的配置,找到該文件,可發現不少的「encoding = UTF-8」配置項,所以判斷是該配置項影響了Tomcat控制檯的中文亂碼輸出:
方法(1):將全部的「encoding = UTF-8」都修改成「encoding = GBK」,使其識別支持中文,保存文件修改後,再次啓動Tomcat,則看到以下的正常控制檯界面,中文亂碼不見了。
方法(2):加入 java.util.logging.ConsoleHandler.encoding = GBK ,保存文件修改後,再次啓動Tomcat,則看到以下的正常控制檯界面,中文亂碼不見了。
二、Tomcat啓動一閃而過就消失的緣由和解決方法
緣由一:
(1)首先要搞明白啓動不起來的緣由。方法是在命令行下,運行startup.bat文件,這樣程序就不會一閃而過,而會將啓動不起來的緣由打印到窗口上。
(2)在命令行下啓動tomcat的方法讀者應該都很清楚,大致就是:cmd啓動命令行窗口→經過cd命令到tomcat的bin目錄下→運行startup.bat。
(3)經過命令行的提示看到,這是由於電腦上沒有配置JAVA_HOME或者JRE_HOME致使的。那麼下面添加上JAVA_HOME和JRE_HOME。具體步驟爲計算機→屬性→環境變量,而後添加系統變量;
(4)添加完JAVA_HOME和JRE_HOME兩個系統變量以後,在將這兩個變量放到path系統變量中,方法是,在path變量值的後面直接追加 【;%JAVA_HOME%;%JRE_HOME%】注意!分號是環境變量的分割符號,不可少。
可是經過親自測試,發現只配置環境變量 JAVA_HOME 便可以啓動 tomcat 的 startup.bat 不發生閃退。
若是不配置 path變量中的: %JAVA_HOME%\bin; ,則沒法在命令行中正常運行java、javac和java -version 命令。
緣由二:
雙擊tomcat的bin目錄下的startup.bat時一閃而過期,能夠右鍵startup.bat找一個文本編輯器打開,而後在文本的最後敲上pause,保存後從新運行startup.bat,這時候窗口會留在桌面上(調試成功,把pause去掉便可)。咱們能夠看到DOS窗口裏有錯誤信息。
1. The JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program
緣由:之前版本的tomcat須要JDK,如今的tomcat(本人的是7.0)只要有JRE就能夠。 若是你裝的tomcat的是解壓版的(免安裝的)那麼則須要本身手動配置JRE_HOME 這個環境變量,不然,就會出現上面的錯誤。 解決辦法:右擊 個人電腦 - 高級 - 環境變量, 在系統變量中 新建 變量名:JRE_HOME 變量值:C:\Program Files\Java\jre7(根據你本身的JDK安裝目錄尋找JRE)
2.Neither the JAVA_HOME nor the JRE_HOME environment variable is defined Tomcat的startup.bat,
它調用了catalina.bat,而catalina.bat則調用了setclasspath.bat,只要在setclasspath.bat的開頭聲明環境變量(紅色兩行)就能夠了,緣由是後來較新版本安裝完不會自動登記環境變量JAVA_HOME,JRE_HOME。 給setclasspath.bat的開頭添加紅色標記部分,以下: rem ___________________________ rem Set CLASSPATH and Java options rem rem rem ____________________________ set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20 set JRE_HOME=C:\Program Files\Java\jre6 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時就自動註冊了JAVA_HOME,JRE_HOME。 運行startup.bat,提示「信息:Server startup in xxxxx ms」 OK 大功告成。
3. Cannot find 「」d:\apache-tomcat-6.0.32」\bin\setclasspath.bat」
這個時候,多是CATALINA_HOME的值在某個地方被寫死了,像個人綠色版tomcat在bin文件下多了一個setenv.bat的文件,打開一看果真是在這裏面被寫死了CATALINA_HOME的路徑,這應該是爲了某種緣由被人後加上的設置文件,把這個文件刪除以後,tomcat能夠正常運行了。
緣由三:
若是你的環境配置沒有錯,也沒有上述兩種錯誤那麼可能你已經啓動了一個Tomcat,這樣兩個Tomcat會產生衝突。你能夠在com中查看8080是否被佔用:
(1)咱們可使用以下命令來找出哪一個進程佔用5037這個端口
netstat -ano | findstr "5037"
(2)最後一列爲佔用5037端口的進程號,PID爲9060,那麼咱們能夠在任務管理器裏查看改進程號所對應的進程,直接右擊結束該進程便可。或者使用上面提到的taskkill命令,它主要是用來批量刪除某些進程,固然,也能夠用來刪除一個進程,使用方法以下:
taskkill /PID 9060 /F 其中,/F主要是用來強制刪除。
你也能夠查看Tomcat自帶的打印日誌在你的Tomcat的logs文件夾下若是出現了
七月 04, 2018 10:40:20 上午 org.apache.catalina.core.StandardService initInternal
嚴重: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
相似的錯誤可能已經運行了一個Tomcat你能夠在服務中把它終止掉,而後再運行本身的Tomcat就能夠了。
三、啓動 tomcat 後提示警告:Can't load AMD 64-bit .dll on a IA 32-bit platform
將tomcat\bin下的 tcnative-1.dll 文件刪除掉,則報以下警告,並未解決問題。
問題所在:
主要是在64位的系統下安裝的虛擬機是32位的,不能在64位的平臺下加載32位的虛擬機,只能加載64位的。因爲tomcat在安裝的時候加載的32虛擬機的地址,它找到的是32位的虛擬機,因此它提示不能加載64位的虛擬機(在目錄下沒有64的虛擬機)。
解決之道:
下載一個64的JDK安裝,修改JAVA_HOME。
若是設置上面以後還有問題,那麼下載32/64位集合體的Tomcat:
地址:http://tomcat.apache.org/download-70.cgi
32-bit/64-bit Windows Service Installer (pgp, md5)
直接下載地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.exe
安裝這個Tomcat以後,再運行就不會出錯了。
如何查看jdk的版本是32位仍是64位
在cmd下輸入java -version來查看,若是沒有標明是多少位的,默認通常是32位的。
下圖爲64位:
(箭頭指示jdk版本)
還有一種比較粗曠的方式 這個從CPU提及: IA-32架構與IA-64架構 IA是Intel Architecture(英特爾體系結構)的英語縮寫 IA-32架構有32位CPU也有64位CPU。(咱們常用的CPU)
IA-64架構下有Intel64位的CPU(只有服務器使用的CPU)
IA-32架構: 本架構的CPU都採用X86指令 Intel,AMD,Cyrix等廠家都生產X86指令集的CPU 其中32位(x86-32)的CPU有i80386,i80486,i80586,i80686,統稱i80X86,簡稱x86 其中64位(x86-64)的CPU有:2006年之後生產的PC機CPU都是64位的,簡稱x64 最大的優勢在於能夠全面兼容之前32位x86指令的應用程序,他們都是IA-32架構。
由此能夠簡單判斷一些軟件(svn,jdk等)的版本位數,要看軟件默認安裝的位置來進行判斷,以下圖:
Program Files默認安裝路徑在此文件下是64位數的版本;
Program Files(x86)默認安裝路徑在此文件下是32位數的版本;
如何查看tomcat的位數
1】通常經過解壓的文件名稱能夠加以判斷位數: x86即32位,64 即64 位。
2】在cmd命令行界面,運行tomcat/bin下的 version.bat 文件
其中 Architechture參數值就是位數。 server number 參數值就是tomcat版本號。