我在我的Mac上安装了一个bitnami Tomcat 7(apache + tomcat + mysql),使用的是java 1.7 76版本。而我的Mac使用的是java 1.8运行时。当我将在同一台Mac上使用Intellij制作的项目部署到Tomcat并尝试运行它时,会出现UnsupportedClassVersionError错误。无论我使用哪个版本的JDK来编译项目(我尝试了苹果1.6、Oracle 1.7和Oracle 1.8版本),似乎设置语言级别也没有关系。唯一让应用程序运行的方法是使用语言级别1.3(使用JDK 1.7或1.8)。
为了解决这个问题,我现在将Tomcat设置为在我的Mac上安装的1.8 JDK上运行,然后配置Intellij使用相同的JDK。现在一切都正常了。
我的问题是:我是否总是需要使用与运行Tomcat的Java版本完全相同的JDK来编译?还是我做错了什么?
完整的错误信息:(有时也会显示UnsupportedClassVersionError:次要版本)
为了解决这个问题,我现在将Tomcat设置为在我的Mac上安装的1.8 JDK上运行,然后配置Intellij使用相同的JDK。现在一切都正常了。
我的问题是:我是否总是需要使用与运行Tomcat的Java版本完全相同的JDK来编译?还是我做错了什么?
完整的错误信息:(有时也会显示UnsupportedClassVersionError:次要版本)
HTTP Status 500 - javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: test/TestClass
type Exception report
message javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: test/TestClass
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: test/TestClass
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: test/TestClass
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
org.apache.jsp.index_jsp._jspService(index_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.UnsupportedClassVersionError: test/TestClass
org.apache.jsp.index_jsp._jspService(index_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.61 logs.