JAVA_HOME 设置为无效目录:
Posted
技术标签:
【中文标题】JAVA_HOME 设置为无效目录:【英文标题】:JAVA_HOME is set to an invalid directory: 【发布时间】:2017-12-24 06:17:45 【问题描述】:我在我的系统C:\Program Files\Java\jdk1.8.0_
131\bin;
中设置了JAVA_HOME
,并且我试图在命令提示符下运行cordova 命令(cordova build),但我得到了下面的错误。我已经尝试了所有方法,但无法解决此问题:
错误: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 对象堆预留足够的空间
【参考方案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_HOME
值C:\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】:在 linux 和 mac 上:
-
寻找路径
java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home'
结果,例如java.home = /usr/lib/jvm/java-11-openjdk-amd64
复制:/usr/lib/jvm/java-11-openjdk-amd64
在配置 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
第二次更新系统路径:
-
在“系统变量”下的“环境变量”窗口中选择路径
点击“编辑...”
在“编辑环境变量”窗口中点击“新建”
输入 %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"
【讨论】:
以上是关于JAVA_HOME 设置为无效目录:的主要内容,如果未能解决你的问题,请参考以下文章