mvn -v 报错:Unsupported major.minor version 51.0

本文介绍了解决Maven与JDK版本不兼容导致的UnsupportedClassVersionError错误的方法。通过更换JDK版本从1.6.0到1.8.0解决了问题,并讨论了环境变量中配置多个JDK版本可能带来的问题。
  • 正常mvn -v 命令:
    在这里插入图片描述
  • 报错:

java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0

Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher. Program will exit.

  • 解决:
    J2SE 8 = 52,
    J2SE 7 = 51,
    J2SE 6.0 = 50,
    J2SE 5.0 = 49,
    JDK 1.4 = 48,
    JDK 1.3 = 47,
    JDK 1.2 = 46,
    JDK 1.1 = 45
    由上面对应关系可知是jdk7的版本错误 ; 因为maven版本和jdk版本不兼容,我这里用的maven是3.3.9,jdk是1.6.0,然后换了一个jdk1.8.0版本的便可以了;

    • 具体可在cmd中使用echo %JAVA_HOME% 命令查看一下自己环境变量中配置的版本;
    • 有时候你使用java -version命令显示的是1.8.0版本的, 但使用echo %JAVA_HOME%命令可能会看到不同版本的jdk ;
    • 出现这样的现象主要是个人当时的坏习惯, 在环境变量中配置多个版本jdk, 在path中只引入其中一个, 其实这样做是有弊端的, 比如Tomcat默认会读取环境变量中名称为JAVA_HOME的信息, 而不会读取JAVA_HOME2的信息;
    • 所以环境变量最好要以JAVA_HOME 来命名, 不要配置多个jdk;
  • 其他解决方案可参照:

03:52:55,616 WARN [org.jboss.modules] (http-localhost-127.0.0.1-8080-2) Failed to define class test.TestServlet in Module "deployment.PageWeb.war:main" from Service Module Loader: java.lang.UnsupportedClassVersionError: test/TestServlet : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_75] at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_75] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.7.0_75] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391) at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) at org.jboss.modules.Module.loadModuleClass(Module.java:517) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:72) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1156) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:952) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.security.SecurityContextAssociation
05-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小野猪

若恰好解决你的问题,望打赏哦。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值