如何让grails选择合适的JDK?

ken*_*gen 6 grails

除了mac 1.6之外,我还使用安装了Oracle Java 1.7的Mac OSX 10.8.5.我有我的JAVA_HOME设置和路径前面的JAVA_HOME/bin.当我从命令行运行grails编译时,我可以看到它选择Java 1.6而不是1.7.如何让grails命令行选择我想要的JDK?

? echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
? echo $PATH
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin /usr/local/share/npm/bin /Users/kbrodhagen/bin /Users/kbrodhagen/.rvm/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/git/bin
? set -x JAVA_OPTS "-showversion"
? grails compile
java version "1.6.0_51"
Java(TM) SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-457, mixed mode)
Run Code Online (Sandbox Code Playgroud)

Ian*_*rts 3

您使用的是哪种外壳?您是如何设置的JAVA_HOME?Grails 应该尊重您的JAVA_HOME设置,只要它对命令可见grails,例如在 bash 中您必须使用export变量而不是仅仅设置它,在tcsh您将使用setenv而不是set.

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin您还可以从 PATH 中删除,因为/usr/bin/java它将自动委托给java当前JAVA_HOME.