从我的Java应用程序中,我想创建一个符号链接。但是,我的应用程序可以在不同的情况下运行,并非所有这些都允许创建符号链接。我有以下情况:
要创建符号链接,我使用Files.createSymbolicLink()
。如果Windows没有权限,则会在Windows下抛出IOException
。确切地说,例外是:
java.nio.file.FileSystemException: test\link: A required privilege is not held by the client.
我希望能够在尝试创建符号链接之前判断我是否拥有应用程序(Java 7或更高版本)的此权限。我怎么能这样做?
答案 0 :(得分:1)
此代码仅适用于Windows,并附带Java。
public static boolean AdminAuth() {
String groups[] = (new com.sun.security.auth.module.NTSystem()).getGroupIDs();
for (String group : groups) {
if (group.equals("S-1-5-32-544"))
return true;
}
return false;
}
SID S-1-5-32-544是Windows操作系统中Administrator组的ID。
您还可以查看有关适用于Windows的Application Manifest的此documentation。