如何在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 ?
我知道这个问题已经有很多答案,但我只想分享我的解决方案,只使用Temurin和bash。
AdoptOpenJdk已弃用,这就是我使用Temurin的原因。
1. 使用镜像或包管理器下载Temurin
$ brew install—桶铁尿
对于其他版本(如Java 8):
$ brew tap自制/桶装版本
$ brew install—桶temurin8
2. 将bash脚本添加到bash配置文件中
打开~/。ZSHRC或~/。Bash_profile(取决于您正在使用它)
并添加以下代码:
set-jdk() {
jdkversion=$1
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-"$jdkversion".jdk/Contents/Home;
export PATH=$PATH:$JAVA_HOME/bin;
java -version
}
3.重新启动终端并更改Java版本
$ set-jdk N N是你想要的Java版本,并且已经安装好了
如。
$ set-jdk 8修改为Java 8 / 1.8
一些注意事项:
它只会在使用set-jdk命令的终端会话上保留Java版本
它不会将Java版本设置为全局
当您想要将JAVA_HOME添加到另一个脚本/应用程序中时,可以设置/Library/Java/JavaVirtualMachines/temurin-<version>。jdk/Contents/Home(更改为所需的Java版本。就像这个JD-GUI的例子)
享受
通过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中的多个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
卸载jdk8,安装jdk7,然后重新安装jdk8。
我在它们之间切换的方法(在.profile中):
export JAVA_7_HOME=$(/usr/libexec/java_home -v1.7)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
alias java7='export JAVA_HOME=$JAVA_7_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
#default java8
export JAVA_HOME=$JAVA_8_HOME
然后,只需在终端中输入java7或java8即可切换版本。
(编辑:更新为Java 9添加了dylan的改进)