我可以在JRE 1.6为
的Windows机器上检查提供的用户是否为系统管理员String groups[] = (new com.sun.security.auth.module.NTSystem()).getGroupIDs();
for (int i = 0; i < groups.length; i++)
{
if ("S-1-5-32-544".equals(groups[i]))
{
return true;
}
}
参考:http://www.rgagnon.com/javadetails/java-check-if-current-user-is-admin-(windows).html
但是这个类 NTSystem 在IBM RDi 9.5(64位)JRE 1.8上不可用。 即使是完整的包装也不可用,即
com.sun.security.auth。*
任何想法,如何在RDi 9.5(64位)JRE 1.8中完成上述任务?
答案 0 :(得分:2)
甲骨文称JDK8正在改变太阳。*类
阳光下的一些API。*包已经改变。这些API不是 供开发人员使用。 从太阳进口的开发商。* 包裹自行承担风险。有关详细信息, 看看为什么开发人员不应该编写打电话给太阳&#39;包。 http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html
的src: http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html
答案 1 :(得分:1)
您的JRE中应该有必需的JAR(rt.jar),它是JRE的一部分。
如果它可用但仍无法查看类,那么您应该为IBM RDi设置正确的运行时间。
答案 2 :(得分:1)
使用JNA库获得了我的问题的完美解决方案。
http://www.rgagnon.com/javadetails/java-detect-if-current-user-is-admin-using-jna.html