如何在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 ?


当前回答

与@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。

其他回答

在这个网站上可以找到 让我们从安装jEnv开始

Run this in the terminal brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb Add jEnv to the bash profile if which jenv > /dev/null; then eval "$(jenv init -)"; fi When you first install jEnv will not have any JDK associated with it. For example, I just installed JDK 8 but jEnv does not know about it. To check Java versions on jEnv At the moment it only found Java version(jre) on the system. The * shows the version currently selected. Unlike rvm and rbenv, jEnv cannot install JDK for you. You need to install JDK manually from Oracle website. Install JDK 6 from Apple website. This will install Java in /System/Library/Java/JavaVirtualMachines/. The reason we are installing Java 6 from Apple website is that SUN did not come up with JDK 6 for MAC, so Apple created/modified its own deployment version. Similarly install JDK7 and JDK8. Add JDKs to jEnv. JDK 6: JDK 7: JDK 8: Check the java versions installed using jenv So now we have 3 versions of Java on our system. To set a default version use the command jenv local <jenv version> Ex – I wanted Jdk 1.6 to start IntelliJ jenv local oracle64-1.6.0.65 check the java version java -version

就是这样。我们现在有多个版本的java,我们可以很容易地在它们之间切换。jEnv还有其他一些特性,比如Gradle、Ant、Maven等的包装器,以及全局或本地设置JVM选项的能力。有关更多信息,请查看文档。

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

通过Homebrew安装Java的新命令:

安装adoptopenjdk/openjdk/adoptopenjdk8 安装adoptopenjdk/openjdk/adoptopenjdk11

有关最新的命令,请参阅homebrew-openjdk repo。

安装Java

您可以通过Homebrew、Jabba、SDKMAN或手动安装Java。有关所有命令的详细信息,请参阅此回答。

切换Java版本*

你可以用jenv Jabba, SDKMAN或手动切换Java版本。在这里查看所有切换命令的详细信息。

最好的解决方案

Jabba is designed to work on multiple platforms, so it's a good option if you want a solution that'll also work on Windows Using Homebrew to download Java versions and jenv to switch versions provides a nice workflow. jenv makes it easy to work with Java versions stored in any directory on your machine, so it's a good alternative if you're interested in storing Java in non-default directories. Using SDKMAN to download Javas and switch versions is another great alternative Manually switching should be avoided because it's an unnecessary headache.

命令用于手动切换Java版本

下面是手动切换Java版本的Bash / ZSH函数(通过OpenJDK):

jdk() {
        version=$1
        export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
        java -version
 }

有很多很棒的工具可以切换Java版本,所以我强烈建议不要手动切换。

Jenv谈Mac Sierra:

如果安装后无法工作,请执行此错误修复以将Java可执行文件添加到路径

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

尽管eval "$(jenv init -)"可以做这个工作。原因是/bin文件夹已经不存在了,就像在它的主页上描述的那样,但是shim文件夹被用作/bin。

Make sure ~/。Jenv在那里 哪个java可以打印/库/… Jenv global 1.8 Jenv外壳1.8

最终,java给了你:

\用户- xxxx - jenv shims / java。

我最近发现了一个叫做Jabba的Java版本管理器,它的用法与其他语言的版本管理器非常相似,比如rvm(ruby)、nvm(node)、pyenv(python)等。而且它是跨平台的,所以肯定可以在Mac上使用。

安装完成后,它将在~/目录下创建一个目录。jabba来放置你安装的所有Java版本。它“支持安装Oracle JDK(默认)/ Server JRE, Zulu OpenJDK(自0.3.0起),IBM SDK, Java技术版(自0.6.0起)和自定义url。”

他们的Github上列出了基本用法。简单总结一下:

curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh

# install Oracle JDK
jabba install 1.8 # "jabba use 1.8" will be called automatically  
jabba install 1.7 # "jabba use 1.7" will be called automatically 

# list all installed JDK's
jabba ls

# switch to a different version of JDK
jabba use 1.8