tomcat相關

前言:java

 

驗證tomcat安裝成功apache

 

安裝以後:瀏覽器

1.到安裝目錄下找startup.bat不閃退,並出現如下圖2爲成功安裝:tomcat

 

再打開谷歌瀏覽器輸入: localhost:8080驗證.服務器

 

 

 

 

一、解決Tomcat8啓動時控制檯中文亂碼問題(不止是版本8,其餘版本依舊適用)架構

從Tomcat官網上下載下來的Tomcat,在初次運行【 bin\startup.bat】  時,控制檯窗體會出現下圖所示的中文亂碼。編輯器

 

 

Tomcat控制檯中文亂碼界面

通過查看分析,應該是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 (pgpmd5)

 直接下載地址: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版本號。

相關文章
相關標籤/搜索