Java 如何修复不受支持的ClassVersionError?

Java 如何修复不受支持的ClassVersionError?,java,eclipse,Java,Eclipse,以下是堆栈跟踪: Exception in thread "main" java.lang.UnsupportedClassVersionError: /DataManager has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime recognizes class file versions up to

以下是堆栈跟踪:

Exception in thread "main" java.lang.UnsupportedClassVersionError:
/DataManager has been compiled by a more recent version of the Java 
Runtime (class file version 56.0), this version of the Java Runtime
recognizes class file versions up to 52.0
Stacktrace:]具有根本原因 java.lang.UnsupportedClassVersionError:com/north/webapp/DataManager已由较新版本的java运行时(类文件版本56.0)编译,此版本的java运行时仅识别高达52.0的类文件版本(无法加载类[com.north.webapp.DataManager]) 位于org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2424) 位于org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865) 位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1334) 位于org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) 位于org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:122) 位于org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:59) 在org.apache.jsp.index\u jsp.\u jsp服务(index\u jsp.java:130)上 位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) 位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 位于org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) 位于org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) 位于org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 位于org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) 位于org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) 位于org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 位于org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 运行(Thread.java:748)
我已将jdk从版本9更改为8,因为当我试图编译在java12或更高版本上运行的版本为56的类文件时,遇到了一个错误。您正在使用Java1.8


如果生成此类文件的源文件在您的控制范围内,您可以尝试使用java重新编译它。否则,您必须升级到至少java12才能运行此操作。

是否有堆栈跟踪?在你的编辑器中,这些行下面写的是什么?我编辑了我的文章来展示堆栈traceYeah我做了这个,我如何用Java8重新编译?javac*.Java,真的。不知何故,您的javac指向的是与“java”不同的东西。这很奇怪,修正你的路径——如何做到这一点取决于十亿个因素。 Stacktrace:] with root cause java.lang.UnsupportedClassVersionError: com/north/webapp/DataManager has been compiled by a more recent version of the Java Runtime (class file version 56.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class [com.north.webapp.DataManager]) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2424) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1334) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:122) at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:59) at org.apache.jsp.index_jsp._jspService(index_jsp.java:130) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)