问题描述
在macOS系统中直接打开部分应用无法访问,目前发现的有JD,Beyond Compare应用。
解决办法
直接使用 终端打开应用即可访问。
lizhengdeMacBook-Pro:configuration lizheng$ ps -ef -u lizheng|grep JD
501 43797 1 0 10:33上午 ?? 0:09.91 /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home/bin/java -cp /Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.6.3-min.jar -Xdock:icon=/Applications/JD-GUI.app/Contents/Resources/jd-gui.icns -Xdock:name=JD-GUI -Dapple.laf.useScreenMenuBar=true -Xms512m org.jd.gui.OsxApp
lizhengdeMacBook-Pro:configuration lizheng$ jdk8u
current JDK has switched to openjdk version 8 product.
openjdk version "1.8.0-internal-debug"
OpenJDK Runtime Environment (build 1.8.0-internal-debug-lizheng_2020_04_20_09_28-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00-debug, mixed mode)
lizhengdeMacBook-Pro:configuration lizheng$ java -cp /Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.6.3-min.jar -Xdock:icon=/Applications/JD-GUI.app/Contents/Resources/jd-gui.icns -Xdock:name=JD-GUI -Dapple.laf.useScreenMenuBar=true -Xms512m org.jd.gui.OsxApp
lizhengdeMacBook-Pro:1-1-baoleiji lizheng$ ps -ef|grep JD
501 43797 1 0 10:33上午 ?? 0:21.31 /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home/bin/java -cp /Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.6.3-min.jar -Xdock:icon=/Applications/JD-GUI.app/Contents/Resources/jd-gui.icns -Xdock:name=JD-GUI -Dapple.laf.useScreenMenuBar=true -Xms512m org.jd.gui.OsxApp
501 44029 24842 0 10:44上午 ttys000 0:37.82 /usr/bin/java -cp /Applications/JD-GUI.app/Contents/Resources/Java/jd-gui-1.6.3-min.jar -Xdock:icon=/Applications/JD-GUI.app/Contents/Resources/jd-gui.icns -Xdock:name=JD-GUI -Dapple.laf.useScreenMenuBar=true -Xms512m org.jd.gui.OsxApp
通过打开两个可以对比可以看到,左边直接打开的无法查看Downloads目录,右边通过终端打开可以查看。
原因分析
通过进程所属用户看,无法访问下载和文稿目录的是进程id为1的父进程直接启动的。
PID STAT TIME SL RE PAGEIN VSZ RSS LIM TSIZ %CPU %MEM COMMAND UID PPID C STIME TTY
4309 S 3:20.64 0 0 0 5293360 165160 - 0 0.9 1.0 /System/Applicat 501 1 0 六08下午 ??
24841 Ss 0:00.06 0 0 0 4304892 132 - 0 0.0 0.0 login -pf lizhen 0 4309 0 二10下午 ttys000
24842 S 0:00.11 0 0 0 4296768 992 - 0 0.0 0.0 -bash 501 24841 0 二10下午 ttys000
44029 S+ 0:35.82 0 0 0 12118652 947980 - 0 0.0 5.7 /usr/bin/java -c 501 24842 0 10:44上午 ttys000
43797 S 0:14.44 0 0 0 12423900 182548 - 0 0.0 1.1 /Library/Java/Ja 501 1 0 10:33上午 ??
我查看文件用户夹访问权限设置,可以看到是有同意终端访问的,所以这也就解释了为什么终端可以访问,直接打开没办法访问的原因了。