用于chown的字符串的JNA而不是int?

时间:2013-11-01 20:25:47

标签: java linux jna chown

您好我需要通过JAVA更改某些文件的用户/组。我已经看到大致相同的Posix示例evrywhere。

  public interface POSIX extends Library {
    public int chmod(String filename, int mode);
    public int chown(String filename, int userId, int groupId);
    }

这个问题是你必须知道PID和GID,但要做到这一点,你必须通过运行时来获取它们,所以我真的没有看到使用chown方法。我试过这个

  public interface POSIX extends Library {
    public int chmod(String filename, int mode);
    public int chown(String filename, int userId, int groupId);
    public int chown(String filename, String user, String group);
    }

但是在传递了用户和组的字符串参数之后,ls -l显示了该文件的806789808 806789776 dor用户/组。那么有没有办法将用户和组作为字符串传递?

1 个答案:

答案 0 :(得分:0)

将它们作为字符串传递的最简单方法是

Runtime.exec(new String[] { "chown", user, filename });

chown做的是在进行系统调用之前查找id的名称。