SET JAVA_HOME 反映 jenv java 版本

Posted

技术标签:

【中文标题】SET JAVA_HOME 反映 jenv java 版本【英文标题】:SET JAVA_HOME to reflect jenv java version 【发布时间】:2015-04-21 08:18:50 【问题描述】:

我刚开始使用jenv,我关注了一篇解释如何在MacOSX 上使用jenv 和设置多个java 版本的博文。但是我现在遇到的问题是设置 JAVA_HOME。当我使用jenv 切换java 环境时,我想确保我的bash_profile 上的JAVA_HOME 也相应地发生变化。

我该怎么做?

我的~/.bash_profile有关注

if which jenv > /dev/null; then eval "$(jenv init -)"; fi

【问题讨论】:

JAVA_HOME 已经设置了吗?如果您在终端中输入“jenv doctor”,您的输出是什么? 【参考方案1】:

试试“导出”插件:

jenv enable-plugin export

您可以在 jEnv Github 存储库 (https://github.com/gcuisinier/jenv) 中查看 Readme.md 中的导出插件部分

【讨论】:

为什么默认不包含?【参考方案2】:

对我来说,启用像 kimbaudi 这样的 export 插件不起作用。将以下代码添加到.bash_profile(或.bashrc.zprofile.zshrc,具体取决于您使用的shell)为我完成了这项工作:

if which jenv > /dev/null; then eval "$(jenv init -)"; fi

这是在troubleshooting page 中,但他们似乎声明它在说明指南中,但事实并非如此。

【讨论】:

谢谢。也许将 PR 发送到 repo?这确实很关键。【参考方案3】:

您可以在~/.bash_profile 文件中添加这些别名,并在不同的 JAVA 版本之间轻松切换。

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME’

要检查系统中可用的 java 版本,请使用

jenv versions

jenv version

您甚至可以在私人终端中使用以下命令为单个项目设置特定版本。

jenv local 11.0

# 秒选项:-

file -> project structure -> project sdk下载您选择的jdk 然后在你的 .zshrc 中添加以下函数,根据需要在不同版本之间切换。

[附上截图供参考:]:-

在不同的 JDK 版本之间切换

在 ~/.bashrc 或 ~/.zshrc 中添加以下函数

jdk() 
        version=$1
        export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
        java -version
 
获取配置文件,您可以更改版本,如下所示:

jdk 1.8 JDK 9 JDK 11 JDK 13

【讨论】:

以上是关于SET JAVA_HOME 反映 jenv java 版本的主要内容,如果未能解决你的问题,请参考以下文章

linux下java版本管理工具jenv使用介绍

jenv 切换JDK版本无法生效问题

jenv 切换JDK版本无法生效问题

mac 上使用jenv 管理的多个java 版本

Mac--jenv管理jdk版本

jenv 在 MacOS 上找不到通过 brew 安装的 java 17