Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNA使用chown而不是int的字符串?_Java_Linux_Jna_Chown - Fatal编程技术网

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

Java JNA使用chown而不是int的字符串?,java,linux,jna,chown,Java,Linux,Jna,Chown,嗨,我需要通过JAVA更改某些文件的用户/组。我在evrywhere看到了大致相同的Posix示例 public interface POSIX extends Library { public int chmod(String filename, int mode); public int chown(String filename, int userId, int groupId); } 这样做的问题是您必须知道PID和GID,但要做到这一点,您必须通过运行时才

嗨,我需要通过JAVA更改某些文件的用户/组。我在evrywhere看到了大致相同的Posix示例

  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);
    }

但是在传递user和group的字符串参数之后,ls-l显示文件的806789808 806789776 dor user/group。那么有没有一种方法可以将用户和组作为字符串传递呢?

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

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

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

顺便说一句,我有java 6,exec没有得到3个字符串作为参数。@user2548720操作系统只处理数字。磁盘上的记录只有数字。将数字翻译成名称是工具的工作。Java7也没有varargs,正在修复。。。