【问题标题】:JAVA_HOME is set to an invalid directory:JAVA_HOME 设置为无效目录:
【发布时间】:2017-12-24 06:17:45
【问题描述】:

我在我的系统C:\Program Files\Java\jdk1.8.0_ 131\bin; 中设置了JAVA_HOME,并且我试图在命令提示符下运行cordova 命令(cordova build),但我得到了下面的错误。我已经尝试了所有方法,但无法解决此问题:

错误:JAVA_HOME 设置为无效目录:C:\Program 文件\Java\jdk1.8.0_131\bin;

请在您的环境中设置 JAVA_HOME 变量以匹配 Java 安装的位置。

【问题讨论】:

  • JAVA_HOME 只能达到C:\Program Files\Java\jdk1.8.0_ 131
  • 我删除了仍然遇到同样的错误
  • 更改变量后,您需要重新启动命令行..还要删除变量开头和结尾的双引号
  • 搜索Setting and getting windows environment variables from the command prompt 之类的内容,了解如何设置和检查环境变量。
  • 它工作正常,但出现另一个错误FAILURE:构建失败并出现异常。 * 出了什么问题:无法启动守护进程。此问题可能是由于守护程序配置不正确造成的。例如,使用了无法识别的 jvm 选项。请参阅docs.gradle.org 3.3/userguide/gradle_daemon.html 上有关守护进程的用户指南章节 请阅读以下进程输出以了解更多信息: ------------------ ----- VM 初始化时出错无法为 2097152KB 对象堆预留足够的空间

标签: java android cordova


【解决方案1】:

您应该使用 C:\Program Files\Java\jdk1.8.0_12 进行设置。

\bin 不是必需的。

【讨论】:

  • 是的,我打开了。
  • 评论救了我 :) 谢谢
  • 对于 Linux,需要类似的东西:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk/
  • 因为我大发雷霆所以低调尴尬
  • 天啊... 5 个小时来回尝试让 Cordova 工作... 不需要“/bin”...谢谢!
【解决方案2】:

JAVA_HOME 应该指向 home jdk 目录,而不是 jdk/bin 目录。

您需要像这样设置JAVA_HOME

JAVA_HOME="C:\Program Files\Java\jdk1.8.0_131"

【讨论】:

    【解决方案3】:

    删除\bin,同时删除最后的;。重启cmd后运行。

    【讨论】:

    • 你的评论救了我的命。谢谢。在末尾添加了分号,这会导致在 google 中进行无休止的搜索。在最后去除半冒号后,它的作用就像魅力一样。谢谢
    • 你的答案是正确的答案。即使在我删除 \bin 之后,由于“;”而出现错误。
    • 删除分号是诀窍
    【解决方案4】:

    尝试以下方法:

    • JAVA_HOME 路径中删除\bin
    • 打开新的命令行窗口。
    • 以管理员身份运行您的命令。

    【讨论】:

    • 在设置 React Native 时,我不得不从 JAVA_HOME 路径中删除 \bin
    【解决方案5】:

    在 Window 10 上,问题出在分号 ;

    转到edit the system environment variables并删除JAVA_HOMEC:\Program Files\Java\jdk1.8.0_144末尾的分号

    换句话说,将这个C:\Program Files\Java\jdk1.8.0_12; 转换为C:\Program Files\Java\jdk1.8.0_12

    您可能需要删除 Windows 对话框中的条目并创建一个新条目。如果您曾经有多个条目并获得更大的Form view,Windows 会自动在每个条目的末尾插入一个;,即使您只剩下一个条目。

    【讨论】:

      【解决方案6】:

      JAVA_HOME 应该是C:\Program Files\Java\jdk1.8.0_172 路径中不要包含分号(;) 或bin。任何高于 7 的 jdk 版本都可以使用。另外,你需要重新启动cmd

      【讨论】:

        【解决方案7】:

        JAVA_HOME设置为C:\Program Files\Java\jdk1.8.0_172

        不要使用分号“;”具有以上 JAVA_HOME 值

        要验证设置是否正确,请转到命令提示符检查 C:.......>sdkmanager --list

        将出现一个完整的列表,现在它已成功保存。

        否则会显示 JAVA_HOME 路径设置不正确的错误。

        【讨论】:

          【解决方案8】:

          linuxma​​c 上:

          1. 寻找路径java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
          2. 结果,例如java.home = /usr/lib/jvm/java-11-openjdk-amd64
          3. 复制:/usr/lib/jvm/java-11-openjdk-amd64
          4. 在配置 bash 文件中添加一行(例如~/.zshrc):export JAVA_HOME=<resultFirstStep>

          【讨论】:

          • 也适用于 Mac
          【解决方案9】:

          设置 JAVA_HOME 变量后,以管理员身份运行 android studio

          【讨论】:

            【解决方案10】:

            请删除 /bin 甚至分号;从 JAVA_HOME 来解决。

            【讨论】:

              【解决方案11】:

              您只需要设置 C:\Program Files\Java\jdk1.8.0_12。

              并使用新的 cmd 检查。会更新的

              【讨论】:

                【解决方案12】:

                首先尝试从路径中删除 '\bin' 并设置主目录 JAVA_HOME 如下: JAVA_HOME : C:\Program Files\Java\jdk1.8.0_131

                第二次更新系统路径:

                1. 在“系统变量”下的“环境变量”窗口中选择路径
                2. 点击“编辑...”
                3. 在“编辑环境变量”窗口中点击“新建”
                4. 输入 %JAVA_HOME%\bin

                第三次重启你的 docker。

                windows中java路径的设置参考link

                【讨论】:

                  【解决方案13】:

                  我在安装 Flutter 时在谷歌上搜索 android 许可证问题时发现了这一点。

                  对于 Linux,通过在末尾添加以下行来更新您的 ~/.bashrc(或其他 shell 配置)文件:

                  JAVA_HOME=/usr/local/android-studio/jre
                  

                  注意:我按照official installation guide for Linux (link)安装了Android studio。

                  对于 Windows,使用 android studio 的路径到 jre 目录并使用正确的值更新环境变量。

                  然后,运行flutter doctor --android-licenses 并按y 以查看未被接受的许可证。 对于每个许可证,请按y。它会在许可文件末尾询问Accept? (y/N):。 在您接受所有未接受的许可后,您应该看到:

                  All SDK package licenses accepted
                  

                  【讨论】:

                    【解决方案14】:

                    我认为您需要删除 ';'从 java 路径的末尾开始。

                    【讨论】:

                    • 那不行,在设置 JAVA_HOME 时,你不应该包含 /bin。如果您仅将其设置为路径,则应包含 bin
                    【解决方案15】:

                    检查系统变量中JAVA_HOME 的重复条目。

                    在我的情况下,上述答案均无效,但我有两个 JAVA_HOME 条目,删除一个有效。

                    【讨论】:

                      【解决方案16】:

                      我使用的是jenv

                      在我的例子中,我使用 jenv 但没有设置 java 版本,所以 jenv 指向的路径实际上是一个 Java 安装。

                      当我运行echo $JAVA_HOME时,它显示/Users/username/.jenv/versions/system,并且没有这样的文件或目录。

                      设置java版本

                      我只需要执行jenv global 15 jenv local 15,指定我想要实际使用的版本,当我重新运行echo $JAVA_HOME 时,JAVA_HOME 发生了变化。

                      【讨论】:

                        【解决方案17】:

                        我在项目的 vs 代码中设置了这样的设置。它为我工作

                        JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home"
                        

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2020-06-15
                          • 1970-01-01
                          • 1970-01-01
                          • 2022-09-28
                          • 1970-01-01
                          • 2021-05-29
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多