java重新安装java7后的java/scala/sbt

java重新安装java7后的java/scala/sbt,java,bash,scala,sbt,zsh,Java,Bash,Scala,Sbt,Zsh,我有pyton和javascript的背景。对于我的工作,我想在scala语言中培养一些额外的技能。我需要Java7来学习Coursera的函数式编程课程,以使家庭作业工具发挥作用。不幸的是,在卸载Java8并安装java7之后,所有java工具似乎都无法在我的机器上工作 在终点站我得到了这个 $ java Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1) $ scal

我有pyton和javascript的背景。对于我的工作,我想在scala语言中培养一些额外的技能。我需要Java7来学习Coursera的函数式编程课程,以使家庭作业工具发挥作用。不幸的是,在卸载Java8并安装java7之后,所有java工具似乎都无法在我的机器上工作

在终点站我得到了这个

$ java
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
$ scala 
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
$ sbt
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/Home/bin/java" (-1)
似乎java找不到合适的jdk,所以我更改了
java\u HOME
变量。在我的
.zshrc
文件中,我定义了以下内容:

export $JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin'
奇怪的是,对我来说,当我启动一个新的终端时,这会产生一个错误

/Users/code/.zshrc:80: /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin not found  
这对我来说很奇怪,因为我可以从终端cd到这个链接。从那里我可以确认它的存在

$  pwd
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin
$  ls
appletviewer   java           jcmd           jmc            jstatd         policytool     servertool
apt            javac          jconsole       jps            jvisualvm      rmic           tnameserv
extcheck       javadoc        jdb            jrunscript     keytool        rmid           unpack200
idlj           javafxpackager jhat           jsadebugd      native2ascii   rmiregistry    wsgen
jar            javah          jinfo          jstack         orbd           schemagen      wsimport
jarsigner      javap          jmap           jstat          pack200        serialver      xjc

再一次,我对java相当陌生,而且对于如何定义终端变量使其工作更为陌生,因此我可能遗漏了一个要点。我错过了哪一步

您的$JAVA_HOME变量应该指向主目录,而不是bin目录,因此将您的env变量更改为:

$ export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/'