【发布时间】:2019-09-23 22:31:44
【问题描述】:
我有一个可以自我更新的 Java 应用程序。
Java 应用程序最初以非管理员身份运行,如果您想更新,它将执行我创建的 .lnk 快捷方式,该快捷方式指向另一个 .jar 文件,专门用于更新(但具有管理员访问权限) .
指向 .jar 更新程序的 .lnk 快捷方式通过在此处使用此答案请求管理员权限 >> https://stackoverflow.com/a/30028948/1862452
更新主 jar 后,我希望 .jar 更新程序再次运行主 .jar,但我希望它是非管理员。我该怎么做呢?它当前以管理员身份运行,因为更新程序 jar 当前以管理员身份运行
【问题讨论】:
-
您需要使用低级别的 WinAPI。基本上,您必须致电CreateProcessWithTokenW
-
是的,我试图避免使用 JNI 的东西。我正在阅读具有最低权限的 runas 命令,但我似乎无法运行我的命令: runas /trustlevel:0x20000 "'C:\
\javaw.exe' -jar 'C:\ 我认为空格有问题,因为它给了我2:系统找不到指定的文件。\main.jar'"