【发布时间】:2018-04-27 00:20:45
【问题描述】:
我在 windows 和 unix 系统中部署了一个 java 代码。我必须添加文件权限才能将文件移动到特定目录(在 unix 中)。我为此使用 PosixFilePermission。
file1 = new File( expFilePath+ "/" + creationDate);
file1.mkdir();
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
try {
Files.setPosixFilePermissions(file1.toPath(), perms);
} catch (IOException e1) {
e1.printStackTrace();
}
上面的代码在unix中运行正常,但是在windows m/c中导致UnsupportedOperationException。在windows m/c中运行代码时,我必须手动注释这段代码。
有没有什么方法可以检测java中的底层操作系统类型并有条件地执行这段代码?
【问题讨论】:
-
如果要检测操作系统,可以查看stackoverflow.com/questions/3282498/…。然后,如果你想在 Windows 中设置类似的权限,那么这里是链接journaldev.com/855/…