1 开发Servlet程序时,MyEclipse配置好tomcat与JDK之后,启动时控制台报下列错误:
1 java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0
2 at java.lang.ClassLoader.defineClass1(Native Method)
3 at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
4 at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
5 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
6 at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
7 at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
8 at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
9 at java.security.AccessController.doPrivileged(Native Method)
10 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
11 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
12 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
13 at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
14 Exception in thread "main"
使用环境:MyEclipse 10.7 + tomcat 8.0.37 + MyEclipse自带的JDK1.6.0_13
经查询得到的结果是tomcat 8.0配置的JDK与MyEclipse自带的不兼容
2 重新配置MyEclipse项目的Build Path与tomat的JDK选项,使用自己安装的JDK 1.8.0_101
还是报错,这次是测试的Servlet直接报错,编译都通不过。
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
经查询此错误应该是JDK版本太高,与MyEclipse步兼容引起的。
3 解决方法
重新安装1.7版本的JDK,MyEclipse Servlet项目与tomcat都配置成1.7的JDK,就没问题了。
4 注意事项
注意MyEclipse,tomcat,JDK版本,差距不能太大。例如MyEclipse10.7自带的JDK版本是1.6,默认支持的tomcat是7.0,所以tomcat最好用7.0(最多只能用8.0),JDK最好用1.6(最多只能用1.7).