失败-无法启动上下文路径/ProjectName处的应用程序(java.lang.UnsupportedClassVersionError)

失败-无法启动上下文路径/ProjectName处的应用程序(java.lang.UnsupportedClassVersionError),java,tomcat,Java,Tomcat,我正在tomcat7服务器上部署我的项目,但是我遇到了上面标题所述的错误。它显示的异常如下所示: Jul 13, 2017 10:24:48 AM org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter naviox java.lang.UnsupportedClassVersionError: org/survey/model/HomeProfile: Unsupported

我正在tomcat7服务器上部署我的项目,但是我遇到了上面标题所述的错误。它显示的异常如下所示:

Jul 13, 2017 10:24:48 AM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter naviox
java.lang.UnsupportedClassVersionError: org/survey/model/HomeProfile: Unsupported major.minor version 52.0 (unable to load class org.survey.model.HomeProfile)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2892)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1172)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:224)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildHibernateConfiguration(EntityManagerFactoryBuilderImpl.java:1136)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:853)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
    at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at org.openxava.jpa.XPersistence.getEntityManagerFactory(XPersistence.java:197)
    at org.openxava.jpa.XPersistence.createManager(XPersistence.java:112)
    at org.openxava.component.parse.AnnotatedClassParser.obtainManagedClassNamesUsingJPA(AnnotatedClassParser.java:2740)
    at org.openxava.component.parse.AnnotatedClassParser.getManagedClassNames(AnnotatedClassParser.java:2655)
    at com.openxava.naviox.impl.BaseAllModulesNamesProvider.getAllModulesNames(BaseAllModulesNamesProvider.java:19)
    at com.openxava.naviox.impl.AllModulesNamesProvider.getAllModulesNames(AllModulesNamesProvider.java:14)
    at com.openxava.naviox.impl.MetaModuleFactory.createAll(MetaModuleFactory.java:27)
    at com.openxava.naviox.impl.DB.createModules(DB.java:127)
    at com.openxava.naviox.impl.DB.populateDB(DB.java:83)
    at com.openxava.naviox.impl.DB.populateDB(DB.java:75)
    at com.openxava.naviox.impl.DB.init(DB.java:27)
    at com.openxava.naviox.Modules.init(Modules.java:39)
    at com.openxava.naviox.web.NaviOXFilter.init(NaviOXFilter.java:22)
    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4746)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5399)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1256)
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:714)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:219)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
我是新来的。异常是由于jdk版本的不同造成的吗?我使用的是JDK1.8,部署到的文件夹使用的是JDK1.7。如果是,我如何解决错误


请帮忙。提前感谢。

在将.java编译成.class时,即使您使用jdk 1.8,也要将遵从性级别设置为1.7,或者让tomcat也使用jdk 1.8运行。 如果使用javac,请指定-source 1.7-target 1.7。如果使用IDE,请找到一个要设置为具有相同效果的首选项。 例如,在Eclipse中,您可以在project/properties/Java编译器中找到这些设置。
对于NetBeans project/properties/sources/Source二进制格式,您的错误是因为将源代码编译为类的JDK版本与试图运行它的JRE版本不同

较高版本的JRE可以运行使用较低版本的JDK编译的类,但是较低版本的JRE不能运行使用较高版本编译的类

换句话说,Java只向后兼容,这是有道理的

这将导致与您得到的错误相同的错误

如果你的老板告诉你使用Java7,你可以选择3个选项

不要使用它,并向他解释Java 7不再受支持。 使用Java7运行和编译代码。 如果您有在更高版本的JDK中编译的第三方库,或者如果您有使用Java8特性的源代码,则第二个选项将不起作用。第三方库问题可以通过导入在旧版本JDK中编译的库的版本来解决,或者如果您可以访问源代码,则可以自己编译旧版本的库。如果您已经在使用Java8的特性,那么您必须使用Javac中的源和目标选项进行编译,以将具有较高Java特性的源代码编译为较低Java版本的类文件。 它看起来像下面这样

javac -source 1.8 -target 1.7 HelloWorld.java

在tomcat中使用JDK 8。我的老板让我将jdk1.8降级为jdk1.7。我怎么能降级呢?只需在我的电脑的控制面板上卸载java8?您可以在计算机上安装这两个版本。只需将JAVA_主页指向您想要的java7版本即可。看看这个: