<分区>
我正在使用 java 代码将几个 jar 文件从 linux 机器复制到 Linux 机器,复制时我正在为所有 jar 设置 777 权限,但是如果我去复制位置查看 jar,则没有设置权限。可能是什么问题?谁能帮忙
file.setExecute(true);
file.setReadable(true);
file.setWritable(true):
标签 java linux filesystems
<分区>
我正在使用 java 代码将几个 jar 文件从 linux 机器复制到 Linux 机器,复制时我正在为所有 jar 设置 777 权限,但是如果我去复制位置查看 jar,则没有设置权限。可能是什么问题?谁能帮忙
file.setExecute(true);
file.setReadable(true);
file.setWritable(true):
最佳答案
首先,您所做的并不等同于将权限设置为0777
。
javadoc对于 java.io.File::setExecutable
状态:
A convenience method to set the owner's execute permission for this abstract pathname.
请注意,它没有说明调用对“组”和“其他”权限的作用。
其次,您没有检查调用的返回值,因此它们可能会悄无声息地失败……如果应用程序的有效 uid 不是文件所有者或根用户,Linux 上通常会发生这种情况。
对于 Java 7 及更高版本,更好的方法是使用 java.nio.file.Files::setPosixFilePermissions
( javadoc )
关于java - 未为 jar 文件设置 777 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53348596/