提问者:小点点

java.lang.UnsupportedClassVersionError:不支持的主要版本。次要版本51.0(无法加载类


项目详细信息:使用JavaBridge完成任务的PHP项目。我对这个项目的更新只包含PHP文件。

我已经看到了许多线程。我的java编译版本是JDK1.6,在我的服务器上运行的Java版本是:

java version "1.6.0_30"

我对这在我的设备上本地工作感到非常沮丧,但是当我在服务器上运行它失败时,tomacat日志提供了以下内容:

java.lang.UnsupportedClassVersionError: com/nlrt/reportgenerator/ReportGenerator : Unsupported major.minor version 51.0 (unable to load class com.nlrt.reportgenerator.ReportGenerator)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2840)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1160)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1668)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at php.java.bridge.Util.classForName(Util.java:1518)
    at php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
    at php.java.bridge.Request.handleRequest(Request.java:458)
    at php.java.bridge.Request.handleOneRequest(Request.java:510)
    at php.java.servlet.PhpJavaServlet.handleLocalConnection(PhpJavaServlet.java:202)
    at php.java.servlet.PhpJavaServlet.handlePut(PhpJavaServlet.java:250)
    at php.java.servlet.PhpJavaServlet.doPut(PhpJavaServlet.java:261)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at php.java.servlet.PhpCGIFilter.doFilter(PhpCGIFilter.java:126)
    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:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:701)

共3个答案

匿名用户

这与此线程类似:如何修复java.lang.UnsupportedClassVersionError:Unsupported major。次要版本

我要做的是检查并查看是否所有的java文件都是用相同的版本编译的。版本51,根据该线程是J2SE 7。你需要确保没有任何东西依赖于J2SE 7号。有可能PHP-Java桥是用J2SE 7编译的,其余的是在JDK 1.6上。

匿名用户

已通过使用已部署和备份的原始下载的 JavaBridge 版本解决。不确定我在本地下载的版本是否是J2SE7,但这个错误还是消失了。:)

备份总是救命稻草。

匿名用户

我的一个班级档案有这个问题。

我从中了解到的是,我使用java 7构建war文件,而tomact使用java 6。

我只是换了Java7:)开始为我工作。