Cordova 找不到我的 Java 安装,但 JAVA_HOME 看起来有效。这是怎么回事?

Cordova can't find my Java installation, but JAVA_HOME looks valid. What's going on?

Windows 7 64 位,与 64 位 JDK。科尔多瓦 plugman 1.4.2-dev。使用 cygwin bash 作为 shell,但我不明白为什么这会影响任何东西。

$ echo $JAVA_HOME
"c:\Program Files\Java\jdk1.8.0_25"

$ echo $ANDROID_HOME
C:\Users\admin\AppData\Local\Android\Sdk

$ ls "c:\Program Files\Java\jdk1.8.0_25"
bin        include         lib          release
COPYRIGHT  javafx-src.zip  LICENSE      THIRDPARTYLICENSEREADME.txt
db         jre             README.html  THIRDPARTYLICENSEREADME-JAVAFX.txt

$ ./main.js install --platform android --project ../myproject/ --plugin phonegap-facebook-plugin-gtg --variable APP_ID="1155264567919069" --variable APP_NAME="Voice Test"
Fetching plugin "phonegap-facebook-plugin-gtg" via npm
Installing "phonegap-facebook-plugin" for android
Failed to install 'phonegap-facebook-plugin':CordovaError: 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_25"

我也尝试过使用不带引号的 JAVA_HOME。怎么回事?

@cubrr 在评论中给出了正确答案。 Cordova 生成的错误消息极具误导性:问题不是 JAVA_HOME 不正确,而是 javac 不在我的路径上。由于 java 在我的路径上 这一事实让这变得更加混乱,所以当我检查它时它给出了正确的结果。这是因为 Oracle 安装程序在您的路径 (c:\ProgramData\Oracle\Java\javapath) 中添加了一个目录,其中包含指向 java.exe 和相关程序但不包含相关 JDK 程序的链接。

1) 设置 > 系统变量 >

的路径
 `;C:\Program Files\Java\jdk1.8.0_xxx\bin;`

2) 使用值

创建新的 JAVA_HOME 路径
  C:\Program Files\Java\jdk1.8.0_xxx

现在通过在 CMD 下发出命令来检查 javac 版本

   javac -version

*** 不要碰神谕 - "C:\ProgramData\Oracle\Java\javapath;" 路径

如果你是运行 windows10,你需要在更改路径和其他变量后重新启动计算机。可能也适用于早期的 windows 版本。