如何在MacOS上安装额外的java ?我安装了jdk8,运行正常。但是现在出于开发目的,我需要安装jdk7。当试图通过DMG文件安装旧版本时,我得到一个警告,已经安装了新的java版本,安装程序退出。

    /usr/libexec/java_home -verbose
    Matching Java Virtual Machines (1):
        1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

       /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

除了这个,如何安装jdk7 ?


当前回答

macOS Sierra 420

这个指南是从各种来源(上面的回复和其他帖子)拼凑起来的,非常完美。

0. 如果还没有安装,请安装自制软件。

参见https://brew.sh/

1. 安装jenv

brew install jenv

2. 将jenv添加到bash配置文件中

if which jenv > /dev/null; then eval "$(jenv init -)"; fi

3.将jenv添加到您的路径

export PATH="$HOME/.jenv/shims:$PATH"

4. 利用“组装/ cask-versions”

供参考:“Tap”扩展了brew的可用回购列表,它可以安装,高于和超出brew的默认可用回购列表。

brew tap homebrew/cask-versions

5. 安装最新版本的java

brew install java --cask

6. 安装java 6(或7或8)

brew install java6 --cask
#brew install java7 --cask
#brew install java8 --cask

? 也许关闭并重新启动终端,让它看到任何新的ENV变量已经设置。

7. 检查安装

所有Java版本都安装在这里:/Library/Java/JavaVirtualMachines让我们看看。

ls -la /Library/Java/JavaVirtualMachines

8. 每次将每个路径添加到jenv。

我们需要添加“/Contents/Home”到版本文件夹。 警告:使用您机器上的实际路径…这些只是例子

jenv add /Library/Java/JavaVirtualMachines/1.6.0___EXAMPLE___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___EXAMPLE___/Contents/Home

9. 检查jenv是否注册成功

jenv versions

10. 设置java版本使用(全局)

其中XX与上面版本列表中的一项匹配。

jenv global XX

检查java版本

java -version

检查jenv版本

还应该用星号表示正在使用的当前版本。

jenv versions

DONE


未来快速参考

更改java版本

... 请参阅可用的java版本列表

jenv versions

…然后,其中XX与上面列表中的一项匹配

jenv global XX

其他回答

为了安装最新版本的OpenJDK,我使用了这个。OpenJDK 14的示例:

brew info adoptopenjdk
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk14

查看https://github.com/AdoptOpenJDK/homebrew-openjdk获取当前信息。

下面是一个更DRY的bash版本(基于Vegard的回答)

将1.7和1.8替换为您感兴趣的任何版本 你会得到一个叫'javaX'的别名;其中'X'是java版本(在下面的代码片段中是7 / 8),可以让您轻松切换版本

for version in 1.7 1.8; do
    v="${version: -1}"
    h=JAVA_"$v"_HOME

    export "$h"=$(/usr/libexec/java_home -v $version)

    alias "java$v"="export JAVA_HOME=\$$h"
done

使用jenv管理MAC中的多个java版本

Install homebrew using following command /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" install jenv and activate jenv brew install jenv echo 'eval "$(jenv init -)"' >> ~/.bash_profile tap cask-versions brew tap homebrew/cask-versions search available java version that can be installed brew search java E.g. to install java6 use following command brew install cask java6 Add multiple versions of java in jenv jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

注意:-如果你得到类似ln: /Users/<username>/.jenv/versions/oracle64-1.8.0.231: No such file or directory的错误,那么执行以下命令:-

   mkdir -p /Users/<username>/.jenv/versions/oracle64-1.8.0.231

在添加jdk 's后重新哈希jenv jenv重复 列出已知的java版本到jenv jenv版本 设置默认版本 Jenv global oracle64-1.8.0.231 更改项目的java版本 Jenv local oracle64-1.6.0.65 将JAVA_HOME设置为与jenv相同的版本 Jenv执行bash echo $ JAVA_HOME

我按照下面的步骤链接- https://medium.com/@euedofia/fix-default- java-versionon -maven-on-mac-os-x-156cf5930078,它对我有效。

cd /usr/local/Cellar/maven/3.5.4/bin/
nano mvn
--Update JAVA_HOME -> "${JAVA_HOME:-$(/usr/libexec/java_home)}"
mvn -version

与@Vegard(轻量级)的精神相同:

用Homebrew安装所需的jdk 把这个jdk bash函数和一个默认值放在你的.profile中 jdk () { version = 1美元 export JAVA_HOME=$(/usr/libexec/ JAVA_HOME -v"$version"); java - version } export JAVA_HOME=$(/usr/libexec/ JAVA_HOME -v11);#默认版本 然后,你可以切换你的jdk jdk 9 jdk 11 jdk 13

基于https://github.com/AdoptOpenJDK/homebrew-openjdk。