错误:
UnsupportedClassVersionError: org/eclipse/jetty/servlet/listener/ELContextCleaner : Unsupported major.minor version 52.0(需要jdk1.8)
在maven中使用默认version 也就是最好的jetty时候,会报异常,自己的jdk是1.6,换成了1.8之后完美解决。
eclipse juno只支持到jdk1.7,换了eclipse luna javaEE版本之后(支持java8)可以完美运行。
下面说一下在eclipse中切换jdk版本的问题,如果在一个workspace中有多个需要不同版本jdk的项目,那么在运行某个版本比如1.8的时候,要改一下几个地方:
1 电脑的环境变量 Java_home要改为1.8的地址
2 eclipse window preference java installJRE中要勾选1.8,这里是设置eclipse workspace默认jdk版本的地方
这样还没完
3 把项目的jre类库换掉 buildpath remove原来的 然后add一个1.8就好
4 把项目对应的 compile改为1.8就ok
上面几点做完 就ok. jetty10s更新一次 所以不需要重复的启动了
下面是搜到的 jetty与jdk版本匹配:
1:jetty各个版本信息
版本号 | 发布及维护年份 | 托管平台 | JVM版本 | 支持的协议 | servlet版本 | JSP版本 | 目前状态 |
---|---|---|---|---|---|---|---|
9.3 | 2014 | Eclipse | 1.7 | HTTP/1.1, HTTP/2 RFC2616,javax.websocket, SPDY v3 | 3.1 | 2.3 | Experimental |
9.2 | 2014 | Eclipse | 1.7 | HTTP/1.1 RFC2616,javax.websocket, SPDY v3 | 3.1 | 2.3 | Stable |
8 | 2009-至今 | Eclipse/Codehaus | 1.6 | HTTP/1.1 RFC2616, WebSocket RFC 6455, SPDY v3 | 3.0 | 2.2 | Mature |
7 | 2008-至今 | Eclipse/Codehaus | 1.5 | HTTP/1.1 RFC2616, WebSocket RFC 6455, SPDY v3 | 2.5 | 2.1 | Mature |
6 | 2006-2010 | Codehaus | 1.4-1.5 | HTTP/1.1 RFC2616 | 2.5 | 2.0 | Venerable |
5 | 2003-2009 | Sourceforge | 1.2-1.5 | HTTP/1.1 RFC2616 | 2.4 | 2.0 | Deprecated |
4 | 2001-2006 | Sourceforge | 1.2,J2ME | HTTP/1.1 RFC2616 | 2.3 | 1.2 | Ancient |
3 | 1999-2002 | Sourceforge | 1.2 | HTTP/1.1 RFC2068 | 2.2 | 1.1 | Fossilized |
2 | 1998-2000 | Mortbay | 1.1 | HTTP/1.0 RFC1945 | 2.1 | 1.0 | Legendary |
1 | 1995-1998 | Mortbay | 1.0 | HTTP/1.0 RFC1945 | – | – | Mythical |
2:jdk编译器版本对应的数字版本号
jdk编译器版本 | 十进制(minor.major) | 十六进制(minor.major ) |
---|---|---|
1.8 | 52 | 00 00 00 34 |
1.7 | 51 | 00 00 00 33 |
1.6 | 50 | 00 00 00 32 |
1.5 | 49 | 00 00 00 31 |
1.4 | 48 | 00 00 00 30 |
1.3 | 47 | 00 00 00 2F |
1.2 | 46 | 00 00 00 2E |
1.1 | 45 |