JDK版本不在允许范围内

时间:2015-11-22 21:38:59

标签: java maven mule

我正在使用 Mule CE 3.7 ,他使用 Maven 来编译它的项目。 问题是,在编译时,他会返回此错误:

[ERROR]检测到的JDK版本:1.8.0-60不在允许的范围内[1.7,1.8]。

我已经完成了我找到的所有解决方案,配置了JAVA_HOME和PATH。

如果我运行Java命令,他们会回复我:

MBP-de-axz:~ axz$ java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

MBP-de-axz:~ axz$ javac -version
javac 1.8.0_60

MBP-de-axz:~ axz$ mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T08:57:37-03:00)
Maven home: /usr/local/Cellar/maven/3.3.3/libexec
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre
Default locale: pt_BR, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.1", arch: "x86_64", family: "mac"

我已经像我这样配置了项目的Pom文件:

<requireJavaVersion>
     <version>[1.7,1.9)</version>
</requireJavaVersion>

所以所有人都指向相同的Java版本。 这发生在我的Mac和Windows上。 该项目只有在我改为Java 1.7时才有效,但我可以使用1.7,因为我的一个库使用Java 1.8。

任何人都有这样的想法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可能希望将[1.7,1.9)用作版本范围。这意味着它接受1.7(包括)之间的版本,直到1.9(不包括)。由于1.8.0_60大于1.8,因此它超出了之前版本范围的范围。顺便说一句,[1.8)会包含和排除1.8,因此不应该有效。

答案 1 :(得分:0)

问题是Mule与JDK 1.8不兼容,我需要使用JDK 1.7

我应该读过这些琐事。

答案 2 :(得分:0)

当maven JDK版本和PROJECT JDK版本不匹配时会发生此错误。

为了解决这个问题,请先尝试使用

找出mvn jdk版本
"mvn --version"

然后使用set JAVA_HOME="c:\jdk_location_here"设置所需的JDK版本。如果您重新运行"mvn --version"。您将在那里看到更新的JDK版本。现在尝试运行您的构建。

长期:在环境变量中设置JAVA_HOME。