问题出现背景
新版的macOS系统配置好了Java开发环境后,想要在命令行里执行maven相关的命令,却发现报了这个错:zsh: command not found: mvn
,第一反应这是没有配置maven环境变量啊!那就配一下吧。
配置环境变量
在命令行里照着熟悉的方式反手秀了一顿操作:
vim ~/.bash_profile
# 这里的maven目录是安装的目录,你的可能不一样,以实际的为准
export PATH=$PATH:~/maven/bin
# 加上这句让新的环境变量生效
source .bash_profile
然后验证一下配置是否生效,在命令行自信地敲出:mvn -v
,不出意外会得到类似如下结果:
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /Users/codeboyzhou/maven
Java version: 1.8.0_312, vendor: Temurin, runtime: /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"
本以为到这里就结束了,内心还暗自高兴了一波,又解决了一个问题。但是当去到IDEA
内置的命令行里执行这个命令时,现实却无情打脸,这个问题又在报了:zsh: command not found: mvn
,啥情况?
大致想了一下,猜想是新版的macOS系统默认使用的是zsh
,而.bash_profile
文件这种配置环境变量的方法是老版本系统和Linux
系统下采用的,会不会不兼容呢?试试看吧,怎么试呢?
⚠️注意:如果你的系统里本身已经有了.zshrc
这个文件,先不要盲目执行下面这个操作,跳过这里往下看
在命令行里执行mv ~/.bash_profile ~/.zshrc
,做个文件替换,再执行一下source ~/.zshrc
让环境变量生效,理论上应该是没问题了🤔重启一下IDEA
,再次打开终端窗口,自信地敲下mvn -v
,成了,如愿地看到了预期的输出,确认问题到此已经得到解决。
后续总结思考
翻看网络上的其它文章,有提到说zsh
是可以兼容.bash_profile
文件的,只是在启动时没有自动加载这个文件,可以在.zshrc
文件的最后一行加上source ~/.bash_profile
命令,让其每次启动终端时都自动生效。实际测试了一下,这种方法也是可行的。
只是对于我当时的场景来说,我的系统里本身是没有.zshrc
文件的,重命名文件的方式能够最快解决我的问题,并且也无需担心会覆盖其它已有配置,相比之下操作起来也更加简洁。具体采用哪种方案来解决这个问题,可以依据实际的情况和个人偏好来决定。