UAC 是 Windows 特有的一个权限控制机制,Java标准库并没有提高对它的支持。尽管大部分时候我们都使用 Java 进行平台无关的操作,但对于一个桌面程序,有时候确实需要请求权限完成一些设置,正如 Intellij Idea 和 Eclipse 的 CodeMix 插件一样。这种操作会给开发者和用户代来便利。

实现方式

正如前面提到到,Java 标准库并不提供请求权限的操作。但我们还有一些变通的办法:

  • 用一个 exe 可执行请求权限,再启用 JVM 进程。
  • 通过 JNI 调用本地(native)代码。
  • Java 生成脚本(bat, vbs等)请求权限。

JNI 方式

这里有现成的库可以使用——Java Native Access (JNA)

https://github.com/java-native-access/jna

这里有一个示例如何使用这个库

https://github.com/lukacat10/JavaUACExample

脚本方式

这是我比较推荐的方式、这里依然有现成的解决方案

https://github.com/kasp315b/UACTool

最后修改:2020 年 04 月 02 日
如果觉得我的文章对你有用,请随意赞赏