在安装java 8之后,javac -version在我的mac上运行,但不在java -version上运行

时间:2016-09-01 16:31:28

标签: java macos jvm homebrew

我在macbook pro OS 10.10.5

上设置 java 8 开发环境时遇到一些困难

在终端我执行了以下内容:

brew update
brew cask install java --force 

完成上述步骤后,它说:

  

java已成功安装!

现在我需要弄清楚如何在.bash_profile中设置我的JAVA_HOME变量。

但是我看到了以下奇怪的情况:

petesp$ javac -version
javac 1.8.0_102

但是下面发生了什么,为什么?如何在我的MAC上为Java 8设置JAVA_HOME?

petesp$ java -version
-bash: java: command not found

为什么找不到java -version?那太奇怪了。如果我使用brew安装java,我假设javac -version和java -version都应该正确运行。

1 个答案:

答案 0 :(得分:0)

此脚本使您可以在 Java 1.7 Java 1.8 之间切换,还可以在bash配置文件中设置JDK。

将以下代码块插入主目录中的.bashrc或.bash_profile脚本中。

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}

对于JDK 1.7:

#set default jdk version
setjdk 1.7.0_60

设置bash启动脚本后。您可以使用以下命令在命令行中切换版本。

切换到Java 1.7并验证您的版本。运行以下命令。

$ setjdk 1.7
$ java -version

输出:

java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

切换回Java 1.8并验证您的版本。运行以下命令。

$ setjdk 1.8

输出:

java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)