我已将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正在改变运行时的路径
答案 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工作,但这是唯一能解决它的问题。