我有一个DLL,它具有某些功能,需要UAC提升权限才能正常工作。我将清单文件更改为level=requireAdministrator
,但是当我在Java中加载dll时,功能失败。
请注意,加载dll有效,但本机方法的实现执行就好像没有提升权限一样(甚至不要求我使用UAC提升权限)。
安装程序包含一个可运行的jar文件(使用Eclipse导出),同一目录中包含本机库文件。理想情况下,我希望有人只需双击jar文件即可运行该程序。
是否有某些方法可以让这个特定的jar文件以提升的权限启动JVM(而不是始终或永远不会以提升的权限启动JVM)?或者是使用提升的权限启动JVM所需的外部程序?
答案 0 :(得分:1)
您无法更改正在运行的进程的权限。当JVM加载你的DLL时,它已经在运行。
您必须在清单中运行带有requireAdministrator
的.exe启动器。当用户双击它时,系统将提示提升权限,一旦您的进程启动,您就可以启动JVM并继承提升的权限。