我的電腦同時使用兩個jdk版本,默認1.7,eclipse使用的是1.8,,由於項目啟動時有加載類需要jdk1.8的包,1.7不支持。所以導致項目在eclipse直接能夠跑,而在外面的tomcat跑是就出現startup failed due to previous errors的錯誤.
但是這樣的提示信息問題還是表達比較含糊,下面我們開始重新理思緒,通過查看日志來分析原因。
為了調試,我們要獲得更詳細的日志。可以在WEB-INF/classes目錄下新建一個文件叫logging.properties
- handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
- ############################################################
- # Handler specific properties.
- # Describes specific configuration info for Handlers.
- ############################################################
- org.apache.juli.FileHandler.level = FINE
- org.apache.juli.FileHandler.directory = ${catalina.base}/logs
- org.apache.juli.FileHandler.prefix = error-debug.
- java.util.logging.ConsoleHandler.level = FINE
- java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Tomcat的日志目錄下會生成error-debug.***.log的文件。里面會提供較詳細提示信息。我的反饋如下:
...Unsupported major.minor version 52.0 (unable to load class com.sdmc.controller.IndexController)...
版本不支持上面類的運行,但是編譯時使用的是JDK1.8的包.所以eclipse上不會報錯。
這種問題奇葩吧,好了廢話不多說,感慨不大堆。總結是出現類似問題從日志開始。
如果早養成這樣的習慣也不會讓我耗了這么久,分分鍾搞定