java - 加载需要 UAC 使用 jni 提升权限的 dll

标签 java java-native-interface uac

我有一个 DLL,它具有某些功能,需要 UAC 提升权限才能正常工作。我将 list 文件更改为 level=requireAdministrator,但是当我在 Java 中加载 dll 时,功能失败。

请注意,加载 dll 可以工作,但 native 方法的实现就像没有提升的权限一样执行(甚至不要求我使用 UAC 提升的权限)。

该安装程序由一个可运行的 jar 文件(使用 Eclipse 导出)和同一目录中的 native 库文件组成。理想情况下,我希望有人只需双击 jar 文件即可运行该程序。

有什么方法可以让这个特定的 jar 文件以提升的权限启动 JVM(而不是总是或从不以提升的权限启动 JVM)?或者是否需要外部程序才能以提升的权限启动 JVM?

最佳答案

您无法更改正在运行的进程的权限。当 JVM 加载您的 DLL 时,它就已经在运行了。

您必须在 list 中使用 requireAdministrator 运行 .exe 启动器。当用户双击它时,系统会提示权限提升,一旦你的进程启动,你就可以启动JVM,它会继承提升的权限。

关于java - 加载需要 UAC 使用 jni 提升权限的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509117/

相关文章:

java - 如何从 jni 端调用 java 方法?

Java 调用 C 调用 Java

c# - 创建一个没有提升的进程

c# - 使用管理权限启动我的 C# 应用程序

java - 如何使用 sendRedirect() 发送变量

java - Tomcat 生产/开发环境

java - While 循环 1 - 100 之间的素数

android - 如何修复 gradle 任务 ':app:mergeDebugJniLibFolders' in flutter gradle build for opencv native with NDK?

windows - 如何为 Windows 安装程序创建 list ?

java - 如何在JAVA中找到我当前的时间在今天的时间和明天的日期之间