2011-03-11 38 views
0

我的java命令不起作用,我认为它与权限有关。我已经尝试chmod/chown来更改权限,但没有任何影响。当我用sudo启动java应用程序时,它可以工作。任何想法?chmod/chown在mac上不能正常工作

iMac:~/ java -version 
java(347) malloc: *** error for object 0x10009357c: pointer being freed was not allocated 
*** set a breakpoint in malloc_error_break to debug 
Abort trap 
iMac:~/ sudo java -version 
java version "1.6.0_24" 
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326) 
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode) 
iMac:~/ which java 
/usr/bin/java 
iMac:~/ sudo chmod 777 /usr/bin/java 
iMac:~/ sudo ls -l /usr/bin/java 
lrwxrwx--- 1 root wheel 74 Mar 11 10:26 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java 
iMac:~/ 

事实上,我现在注意到flash player停止工作。什么可能是错误的?我只使用Apple软件更新重新启动计算机安装的iTunes更新。

回答

0

使用磁盘工具修复权限。

1

当您运行“ls -l/usr/bin/java”时,您只能查看链接的权限。

如果您想查看“真实”权限,请将L添加到选项中,即“ls -lL/usr/bin/java”。

同样的事情,当你运行chmod,然后你改变真实文件的权限。如果要更改链接的权限,请将-h添加到chmod。

祝你好运!

3

虽然与提问者的文本不完全相关,但是与实际问题标题相关的答案 - 如chmod在Mac OSX上不起作用。

您可能遇到的某些文件:[sudo] chmod:不允许操作。这表明了另一个问题,这是OSX/BSD 标志系统功能。任何文件都可以使用chflags工具设置这些标志,并使用ls -l yourfile(在osx上)ls -lo yourfile(在BSD上)查看。导致这个特定错误的是'不可变'标志。可以使用unset(在必要时加上sudo前缀):

chflags nouchg yourfile