Java JNA使用chown而不是int的字符串?
嗨,我需要通过JAVA更改某些文件的用户/组。我在evrywhere看到了大致相同的Posix示例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,但要做到这一点,您必须通过运行时才
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,正在修复。。。