這兩天須要在ubantu服務器部署一下tomcat, 本覺得輕輕鬆鬆就能搞定的事情可是一直不能成功,就tomcat的安裝步驟其實就是下載解壓的工程,奈何,每次 運行 ./startup.sh以後 顯示的都是java
using: ...apache
using:...tomcat
tomcat started.服務器
以後的第一反應就是看看是否是端口被佔用了,而後使用 netstat -ap | grep 8080,查看以後沒有顯示,就覺得端口這邊沒有問題,沒有仔細查看,以後就是重複的更換tomcat的版本了(後來本身意識到這是多麼錯誤的想法,最根本的問題應該是在本身),每次都出現重複的工做以後,無心間看到了一我的的博客說:查看一下本身logs文件夾下面的文件看看是否是端口被佔用了,纔想起來查看日誌文件,一看嚇一跳,日誌文件居然只有赤裸裸的一句話「socket
./catalina.sh: 1: eval: /opt/jdk/jre/bin/java: not found
本身也是很好奇,本身已經在電腦上裝過jdk了,理應包含jre(java runtime enviroment)的,並且本身以前一直也在用idea寫java程序沒有出現jre的問題,可是去jdk安裝目錄查看了一下,發現確實沒有安裝jre,就去官網單獨下載了jre放到了jdk的安裝目錄下面,以後從新啓動tomcat發現仍是started,可是沒法訪問,又查看了一下logs文件夾,發現logs文件下面額文件變多了,意識到本身可能快要成功就查看了一下 catalina.out日誌文件,看了以後發現正常啓動額過程當中 8080 端口已經被佔用了:ide
java.net.BindException: Address already in use (Bind failed) <null>:8080
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:413)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:728)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:452)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:840)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:654)
at org.apache.catalina.startup.Catalina.load(Catalina.java:679)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.base/java.net.PlainSocketImpl.socketBind(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.base/java.net.ServerSocket.bind(Unknown Source)
at java.base/java.net.ServerSocket.<init>(Unknown Source)
at java.base/java.net.ServerSocket.<init>(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:400)
... 17 more
對於java這種一個錯誤報一大堆錯誤的。。。。有時候挺無奈的。 好在最後找到的錯誤的緣由,就是安裝tomcat能夠沒有jdk可是必需要有jre.idea