如何在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 ?
使用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
我最近回复,我真的建议你用SDKMAN代替Homebrew。
使用SDKMAN,您可以轻松地在mac上安装不同版本的JAVA,并从一个版本切换到另一个版本。
你也可以使用SDKMAN的ANT, GRADLE, KOTLIN, MAVEN, SCALA等…
要在mac上安装新版本,可以运行命令sdk install java 15.0.0.j9-adpt
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
我最近发现了一个叫做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
到2023年,我在苹果芯片上无法使用brew install -cask zulu8。Brew install openjdk@8也没有。对我来说唯一有效的解决方案是brew install—cask adoptopenjdk8,然后当然是vim ~/。ZSHRC和内部:
export JAVAC_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
alias javac8='export JAVA_HOME=$JAVAC_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
从使用javac8的终端切换到新安装的(不同的)版本。注意:您可以使用与我不同的Java版本,因此这只是一个示例。
编辑:由于某种原因,它需要一些时间,一旦它被激活。在我看来,重启笔记本电脑是必要的。
SDKMAN !是一个伟大的工具,使用多个版本的Java, Gradle, Groovy, Kotlin和其他JVM工具在Mac OS上。安装和使用文档很容易在主站找到。
(我没有隶属关系,只是一个快乐的用户)。
作为一个使用示例,如果我在终端窗口中输入以下内容,会有一个可用的Java SDK版本列表(为简洁起见,经过编辑):
$ sdk list java
Available Java Versions
+ 9ea170
> + 8u131
7u141-zulu
这里的+表示已安装的版本。>表示当前正在使用的版本。安装新版本:
$ sdk install java 7u141-zulu
要在此终端窗口中使用一个版本:
$ sdk use java 9ea170