【问题标题】:JAVA_HOME should point to a JDK not a JREJAVA_HOME 应该指向 JDK 而不是 JRE
【发布时间】:2017-09-15 17:03:07
【问题描述】:

我正在尝试为我的项目设置 maven,但出现此错误

"JAVA_HOME 应该指向 JDK 而不是 JRE"

我知道已经有类似的问题,但是没有用。如何在 Windows 中将 JAVA_HOME 指向 JDK。我正在使用 IntelliJ IDEA

【问题讨论】:

  • 首先你需要安装一个JDK。你做到了吗?
  • 您几乎不需要定义 JAVA_HOME。
  • “我知道已经有类似的问题了,但是没有用。” ==“请给我投反对票”。 (但不要费心向信使开枪;我不会对这个问题进行投票。)如果您尝试了某事但没有成功,您需要具体说明您尝试了什么、您期望的行为以及确切的行为你得到了。
  • @KlitosKyriacou - Maven 需要设置 JAVA_HOME 环境变量

标签: java windows maven intellij-idea


【解决方案1】:

控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 新系统变量

【讨论】:

  • 对我来说重要的是要注意路径不应包含 bin
  • 非常感谢我在包含 bin 目录时犯了同样的错误,并且在尝试 maven 全新安装我的项目时遇到了 maven 错误。
【解决方案2】:

我在 Mac OSX 上也经历了同样的过程。我安装了最新的 JDK,然后安装了 Maven。有人建议我设置 JAVA_HOME 变量,所以我将它指向 JDK 安装文件夹。运行 Maven mvn compile exec:java 时,我收到了相同的错误 NB: JAVA_HOME should point to a JDK not a JRE

我所做的只是取消设置 JAVA_HOME 变量并且它起作用了。

【讨论】:

  • 该死,这在这里不起作用,我又得到同样的错误。
  • 也在这里工作,虽然将 JAVA_HOME 设置为我所期望的,但没有。
  • 太棒了!要取消设置,我做了:取消设置 JAVA_HOME 。然后 vi ~/.bash_profile 并添加 export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home" 只改变你MAC中的实际路径
【解决方案3】:

通过 cmd 执行 -

回显 %JAVA_HOME% set set JAVA_HOME=C:\Program Files\Java\jdk1.8.0 回显 %JAVA_HOME%

【讨论】:

    【解决方案4】:

    如果你有 JAVA_HOME 环境变量未正确定义 运行这个程序需要这个环境变量 注意:JAVA_HOME 应该指向 JDK 而不是 JRE 错误 所以做一件事......输入 C:>目录/x 你会看到 PROGRA~1 或 May~2 和 int 环境变量更改后 JAVA_HOME 目录这样 JAVA_HOME:- C:\PROGRA~1\Java\jdk1.8.0_144\ 还设置在路径中:-%JAVA_HOME%\bin; 它有效

    【讨论】:

      【解决方案5】:

      在 IntelliJ IDEA 中转到 File>Project Structure>SDK>JDK home path。 复制它然后转到 My Computer>Advanced Settings>Environment Variables 将 JAVA_HOME 路径更改为您复制的路径。 然后打开新的cmd,试试mvn -v

      它对我有用!

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题。 (窗口 10 环境) 我通过删除用户变量中的 JAVA_HOME="C:\Program Files\Java\jdk1.8.0_161\bin" 解决了这个问题,而不是直接添加到系统变量中。

        然后我测试编辑 JAVA_HOME="C:\Program Files\Java\jdk1.8.0_161\" 也有效。 当我在命令提示符窗口中运行“mvn -version”时,它显示“Java home:C:\Program Files\Java\jdk1.8.0_161\jre”。

        总之,我猜 JAVA_HOME 不应该包含 bin 目录。

        【讨论】:

        • 这是我的解决方案。我之前在用户变量中有一个 JAVA_HOME 条目,删除它解决了这个问题。
        【解决方案7】:

        在用户变量中添加JAVA_HOME = C:\Program Files\Java\jdk(version),它对我有用。对我来说,它不适用于 bin,即使我在系统变量中创建 JAVA_HOME

        【讨论】:

          【解决方案8】:

          只需删除 JAVA_HOME 变量值末尾的分号即可。

          set JAVA_HOME as C:\Program Files\Java\jdk1.8.0_171
          

          它对我有用。

          【讨论】:

            【解决方案9】:

            我花了 3 个小时来解决错误 JAVA_HOME 环境变量未正确定义。运行此程序需要此环境变量注意:JAVA_HOME 应指向 JDK 而不是 JRE

            我终于找到了解决方案。请通过Browse Directory 按钮/选项设置JAVA_HOME 值。尝试找到jdk路径。例如:C:\Program Files\Java\jdk1.8.0_181

            它将删除分号问题。 :D

            【讨论】:

              【解决方案10】:

              确保您没有 JRE 路径,如果您已删除它。

              1. 在系统变量中添加JAVA_HOME。变量值:C:\Program Files\Java\jdk-10.0.2(没有bin的JDK位置)
              2. 在系统变量中添加M2。变量值:C:\dev\maven\apache-maven-3.5.4\bin(带有 bin 的 maven 位置)
              3. 在系统变量中添加M2_HOME。变量值:C:\dev\maven\apache-maven-3.5.4(没有bin的maven位置)
              4. 在路径系统变量或C:\Program Files\Java\jdk-10.0.2C:\dev\maven\apache-maven-3.5.4\bin中添加%JAVA_HOME%%M2% --> 对于Windows 10,只需添加位置。对于其他版本,在变量值字段的末尾添加分号,然后是位置 例如:;%JAVA_HOME%;%M2%

              我没有检查 bin 的添加或删除是否会改变结果,但这对我有用。

              【讨论】:

              【解决方案11】:

              除了sovas' response如何添加JAVA_HOME 变量,如果它之前工作并停止工作,请确保路径仍然存在。我最近更新了 Java,它删除了旧版本,使我的 JAVA_HOME 环境变量无效。

              【讨论】:

                【解决方案12】:

                我遇到了这个问题,但是对于 Mac Os,我将 .bash_profile 中的 JAVA_HOME 变量设置为 export JAVA_HOME=$(/usr/libexec/java_home) 然后保存。之后运行source ~/.bash_profile 最后mvn -version 并解决了这个问题。希望有帮助

                【讨论】:

                  【解决方案13】:

                  在系统变量下面添加

                  JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201
                  
                  JDK_HOME = %JAVA_HOME%\bin
                  
                  M2_HOME = C:\apache-maven-3.6.0
                  
                  MAVEN_BIN = %M2_HOME%\bin
                  
                  MAVEN_HOME = %M2_HOME%
                  

                  在路径下添加这些

                  %M2_HOME%
                  
                  %JDK_HOME%
                  

                  【讨论】:

                    【解决方案14】:

                    我在用户变量中添加了 JAVA_HOME 路径并省略了“/bin”。 我尝试了这里给出的所有方法,但只有这个对我有用。

                    【讨论】:

                      【解决方案15】:

                      This worked for me 适用于 Windows 10、Java 8_144。

                      如果路径包含空格,请使用缩短的路径名。比如C:\Progra~1\Java\jdk1.8.0_65

                      【讨论】:

                        【解决方案16】:

                        Windows 10 家庭版:

                        我正在通过 udemy 课程学习 maven。第一次环境变量没问题。我在 SYSTEM VARIABLE 上的 JAVA_HOME 上是这样的:

                        D:\Install\Java\jdk-12.0.1;D:\Install\apache-maven-3.5.4-bin\apache-maven-3.5.4
                        

                        过了几天,不知道怎么回事,开始收到:

                        C:\Users\Franco>mvn -version
                        
                        The JAVA_HOME environment variable is not defined correctly
                        
                        This environment variable is needed to run this program
                        
                        NB: JAVA_HOME should point to a JDK not a JRE
                        

                        在尝试了以上所有之后,我尝试删除 SYSTEM VARIABLES 上的 jdk 条目,并将其放在 USER VARIABLES 上,所以现在我有了:

                        JAVA_HOME on USER VARIABLES: D:\Install\Java\jdk-12.0.1
                        
                        JAVA_HOME on SYSTEM VARIABLES: D:\Install\apache-maven-3.5.4-bin\apache-maven-3.5.4
                        

                        现在重启 CMD 我有:

                        C:\Users\Franco>mvn -version
                        
                        Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14+02:00)
                        
                        Maven home: D:\Install\apache-maven-3.5.4-bin\apache-maven-3.5.4\bin\..
                        
                        Java version: 12.0.1, vendor: Oracle Corporation, runtime: D:\Install\Java\jdk-12.0.1
                        
                        Default locale: en_US, platform encoding: Cp1252
                        
                        OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
                        

                        【讨论】:

                          【解决方案17】:

                          首先,确保 Maven bin 在您的环境变量 PATH 条目中。

                          如果是,请确保您的条目没有乱序,并且 JAVA_HOME 在列表中的 Path 或任何引用 %JAVA_HOME% 的条目之前。当我尝试检查我的 Maven 版本时,我遇到了同样的错误。

                          我有一些引用 %JAVA_HOME% 的额外路径变量,或者在它们之间混合了不同版本的 JDK 和 Maven。我将 Maven 路径条目移到了 %JAVA_HOME% 下方,现在当我从 cmd 使用 Maven 时一切正常。

                          但它是 Windows,所以也许我只是打开和关闭环境变量设置以某种方式使一切变得更好。

                          【讨论】:

                            【解决方案18】:

                            在 Mac OS 中,层次库 > java > JavaVirtualMachines -(在此文件夹内有不同版本的 jdk)选择您想要的版本,在 jdk-version 文件夹内有一个 contents 文件夹,您会在 contents 中找到“Home”文件夹 例如,在声明 $JAVA_HOME 时,您必须提供 HOME PATH-

                            (普通的 shell 命令) 打开终端类型 vi .bash_profile (打开文件名 bash_profile) 按“i”启用插入模式 给 java home 路径 as-

                            export JAVA_HOME=/Library/java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

                            编辑后按 esc 退出编辑模式 然后 :wq 退出并保存

                            这将删除 JAVA_HOME 应该指向 JDK 而不是 JRE 错误 并且还可以避免将来的错误

                            【讨论】:

                            • 它在 2021 年仍然可以在 Mac OS Big Sur 上运行。感谢您的评论。
                            【解决方案19】:

                            我的JAVA_HOME 设置正确,但我通过运行Command Prompt as Administrator 解决了这个问题

                            【讨论】:

                              【解决方案20】:

                              一定要使用正确的路径!

                              我误写了C:\Program Files\Java\。将其更改为 C:\Program Files\Java\jdk\11.0.6\ 解决了该问题。

                              然后我在cmd 中检查mavenmvn -version 的版本。

                              【讨论】:

                              • 路径也是我的问题。我将JAVA_HOME 设置为C:\Program Files\Java\jdk-11.0.7\bin 而不是C:\Program Files\Java\jdk-11.0.7
                              【解决方案21】:

                              对于 mac OS,这对我有用...以上解决方案都没有

                              $ vim .bash_profile
                              
                              export JAVA_HOME=$(/usr/libexec/java_home)
                              
                              $ source .bash_profile
                              

                              【讨论】:

                                【解决方案22】:

                                只是作为其他答案的补充

                                对于 macOS 用户,您可能有一个 ~/.mavenrc 文件,这是 mvn 命令首先查找 JAVA_HOME 定义的地方。所以首先检查那里并确保 JAVA_HOME 指向的目录在该文件中是正确的。

                                【讨论】:

                                  【解决方案23】:

                                  在我的情况下,随着 Java 版本的更新,错误开始出现。所以 JAVA_HOME 路径失效了。

                                  请检查

                                  1. JAVA_HOME 中引用的位置存在。
                                  2. 如果和我的情况一样,请将值从旧路径更新为新路径。

                                  (更好的解决方法是设置 java update 使其自动升级 JAVA_HOME 引用。)

                                  【讨论】:

                                    猜你喜欢
                                    • 2019-04-19
                                    • 2013-07-10
                                    • 2019-02-27
                                    • 2021-09-15
                                    • 2018-11-10
                                    • 2020-04-30
                                    • 1970-01-01
                                    • 2018-09-16
                                    相关资源
                                    最近更新 更多