2

Mac下多jvm优雅设置JAVA_HOME的方式

 3 years ago
source link: https://www.javatang.com/archives/2021/05/28/01333341.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
ezgif.com-gif-maker-750x410.jpg

设置JAVA_HOME最简单的方法在~/.bash_profile~/.zshrc中添加如下设置:

export JAVA_HOME="<JDK_HOME_DIR>"

然后使用source命令使其生效,其中<JDK_HOME_DIR>为JDK所在的主目录。

使用jenv

如果想要安装管理多个JDK,最方便的方式是使用jenv,使用起来非常简单方便,这里就不赘述了。

不过官方对于jenv的设置里面,不会自动设置JAVA_HOME,绝大多数情况下都没有问题,包括使用java -version命令也会得到正确的结果。但是昨天在Intellij IDEA中使用maven-release-plugin对一个项目执行mvn release:prepare命令进行发布的时候,总是出现一些莫名其妙的错误,而使用mvn release命令的时候是正常的。

后来通过分析 target/surefire-reports目录下的 Test-xxx.xml文件,发现其中的java.home竟然指向了系统下面最新版的JDK上面,而非我通过jenv设定的JDK版本。

/usr/libexec/java_home

MacOS下 /usr/libexec/java_home命令返回系统中最高版本的JDK,可以使用/usr/libexec/java_home -V (参数V大写) 命令返回系统中所有已经安装的JDK列表,如:

可以使用/usr/libexec/java_home -v <version> (参数v小写) 命令返回指定版本号的JDK所在目录,注意上面的版本号不一定完整,但一定确保唯一。比如上面图片中的例子,如果后面的versino是1.8的话会返回第一个,1.8.0的话就会返回第二个了。

最后,设置JAVA_HOME可以使用下面的方式了:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)

参考资料:
How to set or change the default Java (JDK) version on macOS?
java_home and JAVA_HOME on macOS

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论

显示名称 *

电子邮箱地址 *

网站网址


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK