我有一台拥有JDK&amp ;;的Jenkins服务器。 JRE 6和7安装在一起。
所有项目都建立在1.6上,除了1.7依赖的项目。
我已将maven pom文件配置为使用JAVA_HOME_7环境PATH中的Java编译器。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
**<executable>${env.JAVA_HOME_7}/bin/javac</executable>**
<fork>true</fork>
<verbose>false</verbose>
</configuration>
</plugin>
在mvn安装期间,我收到以下错误:
java.lang.RuntimeException: There was an error in the forked process
java.lang.UnsupportedClassVersionError: : Unsupported major.minor version 51.0
我认为这意味着服务器正在使用JRE 1.6。
如何将JRE 1.6与1.7保持在一起以保持与旧1.6项目和新1.7项目的兼容性?
非常感谢, 阿塔纳斯
答案 0 :(得分:12)
您还需要使用java 7运行surefire测试。默认情况下,surefire将使用与运行maven相同的jvm - 在您的情况下为Java6。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.13</version>
<configuration>
...
<jvm>${env.JAVA_HOME_7}/bin/java</jvm>
</configuration>
</plugin>
</plugins>
答案 1 :(得分:4)
我记得我也在努力解决这个问题。按照以下步骤解决问题
原因:安装多个JRE后,多个 java.exe 也会安装到系统的多个位置。
解决方案:修改您的环境 PATH 变量并更改 java.exe 的顺序。将 java.exe 的位置放在第一个位置,如下面的代码
PATH = C:\ Program Files \ Java \ jdk1.6.0 \;其它;其它;其它
根据您的使用和安装位置更改上述位置。
答案 2 :(得分:0)
我不止一次遇到过这个问题,因为你的系统上有多个版本的jdk(jre),所以只需将JAVA_HOME设置为正确的jdk就可以编译项目了,运行就可以了。
答案 3 :(得分:-1)
看一下你的target / lib目录,你可能有两个版本的同一个jar。对我而言,它正在创造专业人士