今天心血来潮准备折腾一下jeecg,去下载了一个maven版本的项目,既然下载了maven版的,当然就要配置好maven环境了。
因为之前简单学习过maven,当时使用的版本是3.3.9的,但是今天在cmd下直接运行
mvn -v
报java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
一看就知道了是JDK版本不对,因为我环境变量配置的是jdk1.6的,而maven3.3.9需要jdk1.7以上,但是我其他地方需要jdk1.6的,所以不想修改,就看是否能给maven指定jdk版本。
1、在网上搜索一大推,基本信息都是在setting.xml中间中配置
<profile> <id>jdk1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> </profile>
我按照这种方式修改后,再运行
mvn -v
报错信息依然还是存在,我观察多个网友的解决方案,发现唯一不同的是<id>不一样
有的是<id>jdk1.7</id>
有的是<id>jdk17</id>
有的是<id>jdk-1.7</id>
但是最后还是没能解决问题,后来尝试将环境变量改成jdk1.7,一下子就可以了,因此猜想问题应该出现在mvn.cmd文件中,在这个文件中直接引用了环境变量中配置的jdk,打开mvn.cmd文件仔细查找与JAVA_HOME相关的字段,经过一番折腾发现一个地方:
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
后来把JAVA_HOME - location of a JDK home dir拿到百度一下找到一篇博客:
这才把问题解决,需要我们在mvn.cmd文件的开头加这么一句,引入自己指定的jdk。
set JAVA_HOME=D:\java\64\jdk1.7.0_64
再次运行
mvn -v
完美解决