java - 未为 jar 文件设置 777 权限

标签 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/

相关文章:

java - 如何在 servlet 中调用 DAO 方法来提取查询结果

java - 签署 JSON 对象

php - 如何检查php作业实例

java - 这会在 Unix 上工作吗?

perl - 如何在 Perl 哈希中表示文件系统的符号链接(symbolic link)?

java - GWT RPC 警告 : servlet has mapping, 但 web.xml 没有对应的映射

java - 使用 Google Maps API 时不显示 'My Current Location' 按钮

linux - 删除空字符(Shell 脚本)

regex - 将 `date` 格式修改为 "2nd"/"3rd"/etc。使用 case 语句和/或正则表达式

java - 什么会使这个目录在 HDFS 上不可组写?