【问题标题】:Detected JDK Version: 1.6.0-24 is not in the allowed range 1.7检测到的 JDK 版本:1.6.0-24 不在允许的 1.7 范围内
【发布时间】:2013-03-12 05:17:46
【问题描述】:

当我运行命令时

mvn clean package

我收到错误:

Detected JDK Version: 1.6.0-24 is not in the allowed range 1.7.

如何解决上述错误?我试图检查 jdk 版本是否已安装并得到了这个

java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

如何解决这个问题?

【问题讨论】:

  • 请提供mvn -v 的结果。它会告诉我们 Maven 使用哪个 JDK 版本。

标签: java maven centos


【解决方案1】:

通常在执行mvn -v 时,您可能会看到类似

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 
                    2013-02-19 20:51:28+0700)
Maven home: C:\Java.Application\Apache\apache-maven-3.0.5\bin\..
Java version: 1.7.0_15, vendor: Oracle Corporation
Java home: C:\Java.Application\Sun\Java\jdk1.7.0_15\jre
Default locale: en_US, platform encoding: MS874
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

如果结果指向JDK Version: 1.6.0-24 或超出您的预期。请简单地将JAVA_HOME 设置为您的JDK Version: 1.7.0_03

我希望这会有所帮助。

【讨论】:

  • 我需要使用 sudo 运行命令,然后它才能工作“sudo -i mvn clean package”
  • 如果在命令行中设置java home需要打开和关闭cli
【解决方案2】:

确保您的环境 (PATH) 设置为使用您要用于编译的 JDK 版本。您可以通过在要运行 Maven 的 shell 或命令窗口中运行以下命令来检查这一点:

java -version
javac -version

确保javajavac 都指向正确的版本。有可能你有一个 1.7 JRE(不包括编译器)和一个 1.6 JDK(包括编译器)并且使用了错误的。

如有必要,调整您的 JAVA_HOMEPATH 环境变量。

刚刚注意到您使用的是 CentOS - javajavac 可能指向不同的版本。使用alternatives 命令进行检查,请参见此处的示例:http://wiki.centos.org/HowTos/JavaRuntimeEnvironment - 您必须同时检查javajavac 命令。

【讨论】:

    【解决方案3】:

    在 Eclipse 中检查您的 JRE 系统库。是否显示jdk1.6.0-24?

    对我来说,我必须右键单击 JRE 系统库并转到构建路径 -> 配置构建路径,在库选项卡中,我必须单击 JRE 系统库并对其进行编辑。我将它设置为 Workspace Default JRE,对我来说是 jdk1.7.0_80(不知道为什么它还没有设置)。

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2021-06-27
      • 2016-02-24
      • 2015-11-05
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多