找不到PhoneGap / Cordova“javac -version”。

时间:2014-11-07 12:46:38

标签: java android cordova

我已将Mac更新为Yosimite。我还安装了JDK 1.8x。但是,当我去phonegap run android时,我得到以下内容:

[phonegap] detecting Android SDK environment...
[phonegap] using the local environment
[phonegap] adding the Android platform...

/Users/profile/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: Failed to run "javac -version", make sure you have a Java JDK (not just a JRE) installed.
    at /Users/profile/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:43:27
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)
{ [Error: /Users/profile/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/create: Command failed with exit code 8] code: 8 }
   [error] /Users/profile/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/create: Command failed with exit code 8

我设置了$JAVA_HOME,当我javac -version时,我得到了javac 1.8.0_25。一切似乎都很好。

我唯一能想到的是phonegap正在改变运行时的路径

1 个答案:

答案 0 :(得分:1)

好,

因此,出于某种原因,无论我给予多少鼓励,Java 1.7和1.8都不想玩得很好。我要做的就是下载Java 1.6并使用它。虽然你无法从Java下载站点获得这个,但事情就是这样。相反,你必须从Apple获得它。你可以在这里得到这个

http://support.apple.com/kb/DL1572

这是OSX 2013-005中包含的相同版本的Java。下载完成后,您将拥有多个版本的Java。 Apple的Java 1.6版本与Oracle的版本不同。 Apple将其置于系统库中。这意味着您必须将JAVA_HOME var更改为此系统。一旦我做到了,就完成了。

所以这就是我设定路径的方式:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin

我不知道为什么我不能让Java 1.7和1.8工作,但这是唯一能解决它的问题。