Let*_*ren 8 java android cordova phonegap-build
我正在尝试建立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
Run Code Online (Sandbox Code Playgroud)
但是我可以运行javac -version
得很好.
C:\>javac -version
javac 1.8.0_161
Run Code Online (Sandbox Code Playgroud)
我试图以JAVA_HOME
各种方式设置:指向根; 指向bin
文件夹; 将其设置为User变量,也设置为System one; 添加%JAVA_HOME%\bin
到Path
(用户和系统)等等.
我已经检查了几篇关于这个问题的文章,并且他们说如果我能够使用javac -version
那么那应该表明我的环境变量设置正确.即使是这样,科尔多瓦似乎仍然没有认识到它.
遵循Stephen C的指示,我已经重置了我的变量,但我的错误仍然存在.正如你可以在图片中看到,我可以打电话javac
就好了,都JAVA_HOME
和Path
似乎以正确的方式进行设置.(注意,它实际上是,%JAVA_HOME%\bin
而不是C:\Program Files\Java\jdk1.8.0_161\bin
在Path
.)
我认为你混淆了 JAVA_HOME、PATH 和 CLASSPATH
JAVA_HOME 变量应设置为单个目录的名称。没有多个带有分隔符的目录。JAVA_HOME 目录是 JDK 或 JRE 安装的顶级目录。不是“bin”目录。
PATH 和 CLASSPATH 变量由路径列表组成。对于 PATH,路径是目录的路径名。对于 CLASSPATH,路径是目录或 JAR / ZIP 文件(或特定类型的通配符)的路径名。
如果您使用简单名称的命令名称,则 PATH 是 shell 搜索命令的位置;例如java
或javac
。`
您的错误消息是这样的:
您的 JAVA_HOME 无效:
C:\Program Files\Java\jdk1.8.0_161;C:\Program Files\Java\jdk1.8.0_161\bin
Run Code Online (Sandbox Code Playgroud)
这是错误的,原因有二:
您可能犯的另一件事是,环境变量的更改不一定会传播。例如,如果启动 shell,然后通过 Windows GUI 更改环境变量,则更改可能不会传播到 shell。您可能需要退出 shell 并重新启动它才能获取新值。
如果您不确定,您可以运行(例如)来查看当前 shell 或脚本中echo %PATH%
的当前值。PATH
更新
根据http://cordova.apache.org/docs/en/7.x/guide/platforms/android/index.html,您需要:
ANDROID_HOME
为 Android SDK 安装位置。 还建议您将 Android SDK 的工具、tools/bin 和 platform-tools 目录添加到您的PATH
.