我的电脑同时使用两个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上不会报错。
这种问题奇葩吧,好了废话不多说,感慨不大堆。总结是出现类似问题从日志开始。
如果早养成这样的习惯也不会让我耗了这么久,分分钟搞定