如何更改mac上的Java默认版本?
当前回答
macOS El Capitan或更新版本将选择/Library/Java/JavaVirtualMachines中可用的更高版本的JDK,因此为了降级,您可以将文件重命名为Info。plist改为Info.plist.disabled这样操作系统就会选择以前的版本。
其他回答
除了上面的答案,我在我的.bash_profile(或MacOS 10.15+的.zshrc)中添加了以下几行,这使得切换非常方便(包括java 9的@elektromin的注释):
alias j12="export JAVA_HOME=`/usr/libexec/java_home -v 12`; java -version"
alias j11="export JAVA_HOME=`/usr/libexec/java_home -v 11`; java -version"
alias j10="export JAVA_HOME=`/usr/libexec/java_home -v 10`; java -version"
alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"
插入后,执行$ source .bash_profile
我可以通过输入以下命令切换到Java 8:
$ j8
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
如果你有多个版本,并且你想使用一个特定的版本来运行一些东西,请使用这个例子:
/usr/libexec/java_home -v 1.7.0_75 --exec java -jar you-file.jar
非常简单的答案:
运行并获取所有已安装的JDK路径
/usr/libexec/java_home -V
从jenv.be直接运行命令
git clone https://github.com/jenv/jenv.git ~/.jenv #Linux/macOS
OR
brew install jenv #macOS
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
jenv add PATH_FROM_STEP_1
将以下命令添加到~/. .zshenv文件
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
更新……
在macOS Monterey中,v12.0.1 Cask不再是一个Brew命令。只要按照步骤进行,但在步骤4中只需执行$ brew install…或者$ brew install——桶…而不是$ brew桶安装…感谢@Shivam Sahil的评论。
我将分享我使用macOS Big Sur v11.4的经验,处理这些问题的最好方法是使用Homebrew安装java:
1 -安装自制软件。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2 -安装自制酒桶。
$ brew tap homebrew/cask-versions
$ brew update
$ brew tap homebrew/cask
3 -安装最新版本的Java
$ brew cask install java
4 -安装其他需要的Java版本(Java8, Java11, Java13)。
$ brew tap adoptopenjdk/openjdk
$ brew cask install adoptopenjdk8
$ brew cask install adoptopenjdk11
$ brew cask install adoptopenjdk13
$ brew cask install adoptopenjdk14
5 -在不同版本的Java之间切换
在不同版本的Java之间切换,只需要将以下内容添加到.bash_profile或.zshrc。
在这种情况下,我们希望能够在Java8、Java11、Java13和Java14之间切换:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
export JAVA_14_HOME=$(/usr/libexec/java_home -v14)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
alias java14='export JAVA_HOME=$JAVA_14_HOME'
# default to Java 14
java14
6 -重新加载.bash_profile或.zshrc使别名生效:
$ source ~/.bash_profile
or
$ source ~/.zshrc
7 -最后,你可以使用别名在不同的Java版本之间切换。
$ java8
$ java -version
java version "1.8.0_261"
有关更多信息,您可以看到这篇文章:如何使用Brew在Mac上安装Java
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder