MacOS下运行lein test遇OS Error 13权限拒绝问题求助
解决MacOS下
lein test权限拒绝问题 问题定位
报错提示无法运行路径/Library/Java/JavaVirtualMachines/liberica-jdk-19.jdk/Contents/Home,但这个路径是JDK的根目录,并非可执行文件——说明你的Java环境配置存在问题,导致Leiningen错误地将JDK目录当作可执行程序调用。
修复步骤
1. 验证JAVA_HOME与Java可执行文件权限
首先确认JAVA_HOME设置正确:
echo $JAVA_HOME
输出应为你的JDK根目录(即报错中的路径)。接着检查该目录下bin/java的执行权限:
ls -l $JAVA_HOME/bin/java
如果权限不包含rwx(即非-rwxr-xr-x),执行以下命令添加执行权限:
chmod +x $JAVA_HOME/bin/java
2. 确保PATH包含JDK的bin目录
检查PATH环境变量是否包含$JAVA_HOME/bin:
echo $PATH | grep "$JAVA_HOME/bin"
如果无输出,将其添加到shell配置文件(根据你使用的shell选择,比如Zsh用~/.zshrc,Bash用~/.bash_profile):
# Zsh示例 echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.zshrc source ~/.zshrc # Bash示例 echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile
3. 验证Java环境可用性
直接在终端运行以下命令,确认Java可正常执行:
java -version
如果仍提示权限错误,修复JDK目录链的权限(确保当前用户有读和执行权限):
sudo chmod -R u+rx /Library/Java/JavaVirtualMachines/liberica-jdk-19.jdk/
4. 清理Leiningen缓存
Leiningen可能缓存了旧的环境配置,执行清理后重新测试:
lein clean lein test
5. 检查项目配置文件
打开项目根目录下的project.clj,确认是否存在:java-cmd配置项——如果有,需确保其指向java可执行文件(如$JAVA_HOME/bin/java),而非JDK根目录。
内容的提问来源于stack exchange,提问作者Fabio Dias Francisco
相关产品推荐
相关产品推荐

