今天在Debian上部署WebService时在Tomcat的日志里发现一个异常:java
Invocation of init method failed; nested exception is java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver : Unsupported major.minor version 51.0 (unable to load class oracle.jdbc.driver.OracleDriver)tomcat
从异常信息来看应该是Java编译版本和运行版本的不一致形成的,但编译和运行的Java大版本是一致的,都是1.7,所以经历几回下降编译的版本折腾,仍然未能解决。oracle
后来经过ps命令查看tomcat,发现tomcat竟然是用的debian自带的openjdk1.6,晕!竟然没有用我设置的JAVA_HOME,而我用的OracleDriver是ojdbc7,这就是问题所在了。测试
所以有两种解决方法,要么是使用ojdbc6,要么是设置tomcat的运行环境;前者通过测试是OK的,后者则须要设置:/etc/default/tomcat7的JAVA_HOME,网上不少资料说修改catalina.sh是行不通的。日志
这里折腾了好久,没想到Tomcat没有使用环境变量JAVA_HOME,而是本身又弄一套,虽然感受更灵活了,但真的让初学者蛮头疼的!!部署