Maven:bash mvn权限被拒绝

11

这是我现在看到的:

mvn
bash: /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn: Permission denied

我的bash文件:

if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions

JAVA_HOME=/usr/java/default
export JAVA_HOME

HADOOP_HOME=/usr/share/491s14/hadoop
export HADOOP_HOME

PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin   
export PATH

export M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1
export M2=$M2_HOME/bin
PATH=$M2:$PATH

ls命令:

ls -l /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn
-rw-r--r--. 1 root root 5806 Feb 21 11:33 /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn

文件命令:

file /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn
/usr/local/apache-maven/apache-maven-3.1.1/bin/mvn: POSIX shell script text executable

2
ls -l /usr/local/apache-maven/apache-maven-3.1.1/bin/mvnfile /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn 的输出是什么? - Lee Duhem
已编辑问题并添加了这些内容。 - rcj
4个回答

32

您的权限表明您无法执行该文件。修改该文件的权限。如果您希望机器上的所有用户都能够执行该文件,则执行以下操作:

chmod a+x /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn

chmod 777 对我没用,为什么?而你的解决方案完美奏效。 - Suresh

5

/usr/local/apache-maven/apache-maven-3.1.1/bin/mvn没有执行权限。可以通过以下方式解决:

chmod a+x /usr/local/apache-maven/apache-maven-3.1.1/bin/mvn

3

sudo chmod 777 <mvn location>修复了它。我在Linux上很菜 :P


每个人都这样! - awwsmm
1
这仍然是一个有效的答案,但我认为非常糟糕,因为777是所有用户的开放权限,这可能会导致安全问题。 - jpganz18
1
我使用了744来仅为文件所有者授予执行权限,然而我有几个疑问:此文件在源代码控制中(继承的项目),它应该由源代码控制提供还是由VSCode生成/在settings.json中指定? - qxotk

1
你可以尝试执行命令 chmod +x <your-mvnw-file>。它是有效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接