Fedora19中使用maven的一个错误:UnsupportedClassVersionError

[root@indigo apache]# mvn
---------------------------------------------------
constituent[0]: file:/usr/share/maven/lib/slf4j_nop.jar
constituent[1]: file:/usr/share/maven/lib/aether_spi.jar
constituent[2]: file:/usr/share/maven/lib/maven-embedder.jar
constituent[3]: file:/usr/share/maven/lib/maven-model.jar
constituent[4]: file:/usr/share/maven/lib/maven-wagon_file.jar
constituent[5]: file:/usr/share/maven/lib/objectweb-asmasm-util.jar
constituent[6]: file:/usr/share/maven/lib/atinject.jar
constituent[7]: file:/usr/share/maven/lib/maven-model-builder.jar
constituent[8]: file:/usr/share/maven/lib/maven-wagon_http-shared.jar
constituent[9]: file:/usr/share/maven/lib/plexus_plexus-cipher.jar
constituent[10]: file:/usr/share/maven/lib/aether_impl.jar
constituent[11]: file:/usr/share/maven/lib/maven-compat.jar
constituent[12]: file:/usr/share/maven/lib/xbean_xbean-reflect.jar
constituent[13]: file:/usr/share/maven/lib/plexus_interpolation.jar
constituent[14]: file:/usr/share/maven/lib/plexus_plexus-sec-dispatcher.jar
constituent[15]: file:/usr/share/maven/lib/google-guice.jar
constituent[16]: file:/usr/share/maven/lib/maven-artifact.jar
constituent[17]: file:/usr/share/maven/lib/sisu_sisu-inject-plexus.jar
constituent[18]: file:/usr/share/maven/lib/maven-wagon_http-lightweight.jar
constituent[19]: file:/usr/share/maven/lib/aether_connector-wagon.jar
constituent[20]: file:/usr/share/maven/lib/sisu_sisu-inject-bean.jar
constituent[21]: file:/usr/share/maven/lib/objectweb-asmasm-xml.jar
constituent[22]: file:/usr/share/maven/lib/objectweb-asmasm-tree.jar
constituent[23]: file:/usr/share/maven/lib/slf4j_api.jar
constituent[24]: file:/usr/share/maven/lib/nekohtml.jar
constituent[25]: file:/usr/share/maven/lib/plexus_utils.jar
constituent[26]: file:/usr/share/maven/lib/objectweb-asmasm-analysis.jar
constituent[27]: file:/usr/share/maven/lib/aopalliance.jar
constituent[28]: file:/usr/share/maven/lib/aether_util.jar
constituent[29]: file:/usr/share/maven/lib/maven-wagon_provider-api.jar
constituent[30]: file:/usr/share/maven/lib/objectweb-asmasm-all.jar
constituent[31]: file:/usr/share/maven/lib/plexus_containers-component-annotations.jar
constituent[32]: file:/usr/share/maven/lib/objectweb-asmasm.jar
constituent[33]: file:/usr/share/maven/lib/objectweb-asmasm-commons.jar
constituent[34]: file:/usr/share/maven/lib/aether_api.jar
constituent[35]: file:/usr/share/maven/lib/guava.jar
constituent[36]: file:/usr/share/maven/lib/maven-plugin-api.jar
constituent[37]: file:/usr/share/maven/lib/maven-core.jar
constituent[38]: file:/usr/share/maven/lib/cglib.jar
constituent[39]: file:/usr/share/maven/lib/maven-aether-provider.jar
constituent[40]: file:/usr/share/maven/lib/maven-settings.jar
constituent[41]: file:/usr/share/maven/lib/maven-repository-metadata.jar
constituent[42]: file:/usr/share/maven/lib/maven-settings-builder.jar
constituent[43]: file:/usr/share/maven/lib/commons-cli.jar
---------------------------------------------------
Exception in thread "main" java.lang.UnsupportedClassVersionError: javax/inject/Provider : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:386)
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
	at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:414)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:357)
看到 maven 在运行过程中尝试加载了一个用JDK7编译出的class文件

打开运行mvn命令的脚本 /usr/bin/mvn:

#!/bin/sh
if [ -f /usr/share/java-utils/java-functions ] ; then
  . /usr/share/java-utils/java-functions
  set_jvm
  set_javacmd
fi

export M2_HOME="${M2_HOME:-/usr/share/maven}"
export JAVA_HOME; $M2_HOME/bin/mvn "$@"

看到 它会检查 M2_HOME 变量,如果它没有被设置或被设置为空值,就会将  M2_HOME 设置为 /usr/share/maven 并运行 /usr/share/maven/bin/mvn 这个脚本,
但这不是我安装的 maven 的路径;

在 Maven 3 中 , MAVEN_HOME 已经改为 M2_HOME 并且不会再去检查  MAVEN_HOME 这个变量了。
既然默认脚本去检查 M2_HOME,那重新设置 M2_HOME  值为 Maven 安装目录就可以了

在eclipse中使用maven时需要指定maven安装目录,所以就没有这个问题


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值