我正在使用 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。
任何人都有这样的想法吗?
谢谢!
答案 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。