gpt4 book ai didi

macos - 在 OSX 上将 shell 从 Bash 更改为 Zsh 时找不到 Java_HOME?

转载 作者:行者123 更新时间:2023-11-29 08:55:43 25 4
gpt4 key购买 nike

这很奇怪,我已经为我的 mac 设置了 JAVA_HOME,当我使用 bash shell 时可以找到它,但是如果我更改 shell,我会收到一条消息说 JAVA_HOME not set。这里会发生什么?

最佳答案

我在从 bash 迁移到 oh-my-zsh 时试图解决同样的问题时偶然发现了你的问题。它不存在的原因是没有为 zsh 设置它的代码,但是为 bash 设置了它。通常,每当打开一个新的 bash 窗口时,就会有一些导出 JAVA_HOME 的东西,所以它总是为您设置的。在 Unix & Linux StackExchange site 上有一个很好的线程可能会发生这种情况.

要在 zsh 中做同样的事情,您可以编辑每次 zsh 启动时运行的 .zshrc。我找到了一个 sample .zshrc 帮助我完成了大部分工作。关键是:

export JAVA_HOME=`/usr/libexec/java_home`

这是我附加到现有 ~/.zshrc 文件末尾的文件:

#zshrc, interactive shell settings
export ZSH=$HOME/.zsh

# emacs integration
[[ $EMACS = t ]] && unsetopt zle

# env
if [[ -e /usr/libexec/java_home ]]; then
export JAVA_HOME=`/usr/libexec/java_home`
fi

if [[ -e /usr/local/lib/node_modules ]]; then
export NODE_PATH=/usr/local/lib/node_modules
fi

# path
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin
export PATH=/opt/usr/sbin:/opt/sbin:/opt/usr/bin:/opt/bin:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export PATH=$HOME/.cabal/bin:$PATH
export PATH=$HOME/.gem/ruby/1.8/bin:$PATH
export PATH=$JAVA_HOME/bin:$PATH
export PATH=$HOME/.bin:$PATH

setopt null_glob
# source all files in zsh root
for include in $ZSH/*.zsh; do
source $include
done

# source all non-controlled files
for include in $ZSH/private/*.zsh; do
source $include
done
unsetopt null_glob

然后 source ~/.zshrc 在当前 shell 中运行(或者只是启动一个新的)你应该能够看到它是用 export | 设置的grep JAVA_HOME.

我最后还运行了 mkdir ~/.zsh 来创建正在查找的目录并删除了 .cabal.gem行,因为我不需要它们。

关于macos - 在 OSX 上将 shell 从 Bash 更改为 Zsh 时找不到 Java_HOME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com