【问题标题】:after installing java 8, javac -version works on my mac but not java -version安装 java 8 后,javac -version 在我的 Mac 上有效,但 java -version 无效
【发布时间】:2017-01-09 15:21:27
【问题描述】:

我在我的 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 都应该正确运行。

【问题讨论】:

  • 你的路径中有 java 吗?你安装了 JRE 吗?
  • 奇怪的是 # 在那个错误输出中。 which javacwhich java 的输出是什么?
  • 哦不,那个#,那些是我的cmets!
  • @JasonC-which javawhich javac 没有输出
  • 当我运行 which javac 时,它会返回:/usr/bin/javac 但运行 which java 它不会返回任何东西

标签: java macos jvm homebrew


【解决方案1】:

此脚本使您能够在 Java 1.7Java 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)

【讨论】:

  • 我需要运行 .bash_profile 吗?不知道这是如何在mac上完成的。我尝试运行 setjdk 1.8,但输出为command not found.
  • @user836087 您需要将其添加到 ./bash_profile。
  • 我做到了。它不起作用。 setjdk 1.8 -bash: setjdk: command not found
  • @user836087 好的。试试运行这个:export JAVA_HOME=/usr/libexec/java_home -v 1.8
  • @user836087 好的。删除后无法找回。我想,你需要重新开始。下载 jdk 并重新安装。
猜你喜欢
  • 1970-01-01
  • 2018-09-05
  • 2019-10-22
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2016-07-05
相关资源
最近更新 更多