【发布时间】:2018-09-05 04:29:48
【问题描述】:
我正在尝试设置 Cordova。当我运行cordova build android 时,我收到以下错误:
(node:6816) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Failed to run "javac -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: C:\Program Files\Java\jdk1.8.0_161;C:\Program Files\Java\jdk1.8.0_161\bin
但是我可以运行 javac -version 就好了。
C:\>javac -version
javac 1.8.0_161
我尝试以各种方式设置JAVA_HOME:指向根;指向bin 文件夹;将其设置为用户变量和系统变量;将%JAVA_HOME%\bin 添加到Path(用于用户和系统)等等。
我查看了几篇关于这个问题的文章,他们说如果我能够使用javac -version,那么这应该表明我的环境变量设置正确。即使是这样,科尔多瓦似乎仍然没有认出来。
更新
按照 Stephen C 的说明,我已重置变量,但我的错误仍然存在。正如您在图像中看到的,我可以调用 javac 就好了,JAVA_HOME 和 Path 似乎都以正确的方式设置。 (注意实际上是%JAVA_HOME%\bin 而不是Path 中的C:\Program Files\Java\jdk1.8.0_161\bin。)
【问题讨论】:
-
您的 JAVA_HOME 无效。它不应该指向 JDK 的“bin”目录。 (运行
javac -version的“测试”不会验证JAVA_HOME,因为javac命令不使用JAVA_HOME。您发现的文章具有误导性......或者您误读了它们。) -
我很抱歉这么说,但这并没有多大帮助。我已经尝试了所有可能的方法来设置这些变量,无论是否使用 bin。
-
可能是空格字符问题(Windows 历来不能很好地处理空格)。尝试将 C:\Program Files\Java\jdk1.8.0_161 替换为 %ProgramFiles%\Java\jdk1.8.0_161
-
谢谢你的提示,但还是一样。我已经尝试过您建议的混合大小写,但也尝试使用所有大写字母。一切正常,但 Cordova 出于某种原因无法识别它。
-
你说
%JAVA_HOME\bin%。你的意思是%JAVA_HOME%\bin吗?
标签: java android cordova phonegap-build