如何更改mac上的Java默认版本?
当前回答
更新……
在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
其他回答
安装JDK,而不仅仅是JRE
/usr/libexec/java_home -v 1.8
给了
/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
next
touch .bash_profile
open -a TextEdit.app .bash_profile
TextEdit将显示您可以填写的空白页。
添加到文档: 出口JAVA_HOME = /图书馆/ Java / Home / JavaVirtualMachines / jdk1.8.0_111.jdk /内容
在终端:
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
试试下面的命令:
javac - version
应该输出:
javac 1.8.0_111
这个答案试图解决:当在macOS El Capitan或更新版本(Sierra, High Sierra, Mojave)上为开发目的安装了多个JDK版本时,如何控制系统范围内的java版本(不仅仅是在当前运行的shell中)。据我所知,目前没有一个答案这样做(*)。
作为一名开发人员,我使用几个jdk,并且我想轻松地从一个jdk切换到另一个jdk。通常我有最新的稳定的用于一般用途,其他的用于测试。但我不希望系统(例如,当我启动我的IDE时)使用我目前拥有的最新的“早期访问”版本。我想控制系统的默认值,这应该是最新的稳定。
以下方法至少适用于Java 7到12(撰写本文时为早期访问),适用于Oracle JDK或OpenJDK(包括2018年10月中旬之后由AdoptOpenJDK生成的构建)。
无需第三方工具的解决方案:
将所有jdk保留在默认位置,在/Library/Java/JavaVirtualMachines下。系统默认选择最高版本。 要在默认情况下排除一个JDK,请重命名它的Contents/Info。plist到Info.plist.disabled。当$JAVA_HOME指向JDK,或者在脚本或配置中显式引用它时,仍然可以使用该JDK。它将被系统的java命令忽略。
系统启动器将使用那些有Info的JDK中最高版本的JDK。plist文件。
在shell中使用备用JDK时,从现有的答案中选择您的方法(jenv,或/usr/libexec/java_home周围的自定义别名/脚本,等等)。
调查细节在此要点。
(*) Current answers are either obsolete (no longer valid for macOS El Capitan or Sierra), or only address a single JDK, or do not address the system-wide aspect. Many explain how to change $JAVA_HOME, but this only affects the current shell and what is launched from there. It won't affect an application started from OS launcher (unless you change the right file and logout/login, which is tedious). Same for jenv, it's cool and all, but as far as I can tell it merely changes environment variables, so it has the same limitation.
首先找出存储环境变量的位置
emacs bash_profile zshrc中
设置环境变量步骤:- .单击“确定”
从JAVA下载jdk 双击安装它 现在在文件中设置环境变量 a. emacs。你可以使用这个链接或看到下面的截图
b.对于ZSH配置文件设置-
1. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
2. source ~/.zshrc - Restart zshrc to reflect the changes.
3. echo $JAVA_HOME - make sure path is set up properly
----> /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
4. java -version
--> java version "1.8.0_112" Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)
所有设置现在您可以轻松升级或降级JAVA版本..
一个基于/usr/libexec/java_home的小鱼函数
function jhome
set JAVA_HOME (/usr/libexec/java_home $argv)
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
end
如果你不使用fish,你可以在bash中做类似的事情:
#!/bin/bash
jhome () {
export JAVA_HOME=`/usr/libexec/java_home $@`
echo "JAVA_HOME:" $JAVA_HOME
echo "java -version:"
java -version
}
然后在java do之间切换:
$> jhome #switches to latest java
$> jhome -v 1.7 #switches to java 1.7
$> jhome -v 1.6 #switches to java 1.6
裁判:https://gist.github.com/kenglxn/1843d552dff4d4233271
使用jenv,它就像一个Java环境管理器。它非常容易使用和清洁
对于Mac,请按照以下步骤操作:
brew install jenv
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
安装:如果您正在使用bash,请遵循以下步骤:
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
向jenv添加所需的JVM版本:
jenv add /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home
检查已安装版本:
jenv versions
设置您想要使用的Java版本:
jenv global oracle64-1.6.0
推荐文章
- 在流中使用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