TOMCAT集成JDK
1.集成免安裝JDK窑睁,先把...java/jdk1.8.0_60文件夾復(fù)制到tomcat解壓路徑的bin目錄下如D:\Documents\apache-tomcat-8.0.41\bin
2.再在bin目錄下的catalina.bat和setclasspath.bat的腳本前面加上如:
set "CURRENT_DIR=%cd%"
set "JAVA_HOME=%CURRENT_DIR%\jdk1.8.0_60"
說明1.先綁定當(dāng)前路徑 2.再定位jdk1.8.0_60的目錄。
然后就可以啟動tomcat啦
如果啟動TOMCAT報(bào)錯(cuò)震庭,從tomcat安裝目錄可查看log,經(jīng)檢查原因是8080和8443端口被占用,占用程序是之前在Windows Server 2012上安裝過功能 Internet Information Services(IIS) 綁定了占用的端口并啟動,
輸入命令:netstat -ano你雌,列出所有端口的情況
netstat -aon|findstr "8080"器联,回車二汛,記下最后一位數(shù)字,即PID,這里是443
tasklist|findstr "8080",查看是哪個(gè)進(jìn)程或者程序占用了8080端口,結(jié)果是:svchost.exe
17-Mar-2017 09:14:24.678 ?? [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
java.lang.Exception: Socket bind failed: [730013] ??????????????????????????
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:471)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:810)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:476)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:871)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
17-Mar-2017 09:14:24.724 ?? [main] 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]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:871)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.lang.Exception: Socket bind failed: [730013] ??????????????????????????
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:471)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:810)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:476)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
... 13 more
17-Mar-2017 09:14:24.818 ?? [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-bio-8443"]
17-Mar-2017 09:14:25.927 ?? [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-bio-8443"]
java.net.MalformedURLException: unknown protocol: d
TOMCAT設(shè)置Windows Service
1.解壓完tomcat,在環(huán)境變量里新建系統(tǒng)變量
CATALINA_BASE D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
CATALINA_HOME D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
TOMCAT_HOME D:\tools\apache-tomcat-8.0.14-windows-x64\apache-tomcat-8.0.14
2.在PATH變量最后加上以下這段
;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
也可以在tomcat bin目錄下拨拓,建一個(gè)腳本set-variable.bat 并以管理員身份執(zhí)行執(zhí)行內(nèi)容如下
::set tomcat system environment variable
@echo off
cd..
set "UPPERDIR=%cd%"
setx CATALINA_BASE "%UPPERDIR%" /m
setx CATALINA_HOME "%UPPERDIR%" /m
setx TOMCAT_HOME "%UPPERDIR%" /m
setx PATH "%PATH%;%%CATALINA_HOME%%\lib;%%CATALINA_HOME%%\bin;" /m
exit
3.cmd,使用cmd命令進(jìn)入tomcat安裝路徑的bin目錄下
4.然后執(zhí)行 命令:service.bat install
5.打開windows服務(wù):輸入service.msc
6.找到Apache Tomcat的服務(wù)修改它的運(yùn)行級別(自動肴颊,手動 等),設(shè)置為自動,則會開機(jī)自起渣磷,如果想立馬啟動可以點(diǎn)擊服務(wù)啟動按鈕
一鍵設(shè)置tomcat環(huán)境變量婿着,生成Windows service 并啟動
::set tomcat system environment variable
@echo off
cd..
set "UPPERDIR=%cd%"
setx CATALINA_BASE "%UPPERDIR%" /m
setx CATALINA_HOME "%UPPERDIR%" /m
setx TOMCAT_HOME "%UPPERDIR%" /m
setx PATH "%PATH%;%%CATALINA_HOME%%\lib;%%CATALINA_HOME%%\bin;" /m
:: tomcat service install
cd bin
call service.bat install
for /f "skip=3 tokens=4" %%i in ('sc query Tomcat8') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="STOPPED" (
net start?Tomcat8
)else(
)
exit