繁体   English   中英

在 macOS BigSur 上以 *.sh 执行时,导出 JAVA_HOME 无效

[英]Exporting JAVA_HOME has no effect when execute in *.sh on macOS BigSur

我有一个包含内容的脚本 j16.sh:

export JAVA_HOME=`/usr/libexec/java_home -v 16.0.1`
echo Java 16

当我在终端 (zsh) 上运行脚本时,使用

./j16.sh

它打印“Java 16”,但是当我调用“java --version”时,版本没有更改为 16。

但是,当我执行“导出”行(直接在终端上从脚本复制)时,Java 版本会按预期切换。

我究竟做错了什么? 显然,在脚本中执行,该行没有效果 - 但回声行有?

你应该使用

source j16.sh

这将运行脚本的命令而不是启动新的 shell,这将导致设置环境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM