未为jar文件设置777权限

时间:2018-11-17 05:46:48

标签: java linux filesystems

我正在使用Java代码将几个jar文件从linux机器复制到Linux机器,同时在复制时我将777权限设置为所有jar,但是如果我去查看复制位置的jar,则未设置权限。可能是什么问题?谁能帮忙

file.setExecute(true);
file.setReadable(true);
file.setWritable(true):

1 个答案:

答案 0 :(得分:2)

首先,您所做的并不等同于将权限设置为0777

java.io.File::setExecutable的{​​{3}}状态:

  

为此抽象路径名设置所有者的执行权限的便捷方法。

请注意,它没有说明调用对“组”和“其他”权限的作用。

第二,您没有检查调用的返回值,因此它们可能会默默地失败……如果应用程序的有效uid不是文件所有者或root,通常会在Linux上发生这种情况。

对于Java 7及更高版本,更好的方法是使用java.nio.file.Files::setPosixFilePermissionsjavadoc

  • 它使您可以更好地控制权限集
  • 如果该操作无效,则会引发异常。