最近下载了MongoDB Compass Community,打开的时候提示「应用程序“MongoDB Compass Community”不能打开」,没有任何其他的信息。本以为是下载的文件有问题,又下载MongoDB Compass的非社区版,也是不能运行。
网上搜索一番,发现有网友说是运行权限的问题,于是打开终端进入MongoDB Compass Community的程序包内,找到可执行文件,发现文件有运行权限,但是后面多了一个@符号:
又是一番搜索,据说这个@符号是文件扩展属性,正是它导致程序无法运行,可以使用“xattr -c 可执行程序名称”去掉这个@符号:
之后程序能打开了,但是只显示一个白色的界面,依然无法正常运行。于是回到上一级目录,发现不只是可执行文件,程序包里的其它目录也都带有@符号:
于是回到程序包的最外层目录,执行“xattr -c -r ./”,去掉所有文件和目录的@符号,再次运行程序,终于可以正常启动了。
总结:
Mac提示「应用程序“xxx”不能打开」的问题,有可能有两种原因:
1、可执行文件的权限问题。首先检查“/Applications/程序名称.app/Contents/MacOS/”目录内的可执行文件的权限是否为“-rwxr-xr-x”,
如果不是使用“chmod +x 可执行文件名称”可以解决。
2、文件扩展属性(权限中带@符号)的问题。进入“/Applications/程序名称.app/”目录,执行“xattr -c -r ./”可以解决。