如何在Jar应用程序中获取“以管理员身份运行”

5

我有一个桌面Java应用程序,使用Swing作为GUI库。我需要在该应用程序中安装一个安装程序,但是它必须拥有管理员权限

我正在使用

Process p = Runtime.getRuntime().exec(pathToTheExeInstaller);

安装程序时,如果没有管理员权限运行它,则会出现此错误。在NetBeans中使用“Clean and Build”生成的jar文件中是否有一种方法可以在上下文菜单(右键单击菜单)中获取“以管理员身份运行”选项?

1
尝试以管理员身份运行cmd,然后从那里启动你的jar文件。 - FThompson
1
这个方案可以实现,但作为客户,我不希望他以管理员身份运行cmd,我希望他只需点击一个按钮即可。 - Tarek
请参考以下链接:https://dev59.com/inM_5IYBdhLWcg3waieJ - FThompson
我试着去做,但还是得到了同样的错误。 - Tarek
2个回答

3
这是您需要的内容。
Runtime.getRuntime().exec("powershell.exe Start-Process 'pathToTheExeInstaller' -verb RunAs");

这将会给用户一个提示,询问是否允许你的安装程序获得提升的权限。

摘自这个答案


示例

Runtime.getRuntime().exec("powershell.exe Start-Process 'notepad.exe' -verb RunAs");

enter image description here


我尝试了这个,它在参数上出现了错误,路径包含空格,所以我加了"",但仍然出现错误。 - Tarek
我已经尝试了,但问题在于路径中有~1,这是createTempDirectory返回的内容。 - Tarek
我遇到了这个错误: `Start-Process : 由于错误,无法运行此命令:系统找不到指定的文件。 位于第1行第1个字符:
  • Start-Process C:\Users\TAREQK~1\AppData\Local\Temp\NSIS Installer7238 ...
  • + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand`
- Tarek
@Tarek 我已经编辑了答案,请现在检查一下。使用 ' 而不是 ". - Roshana Pitigala
对不起,我忘记了。 - Tarek
我假设这只适用于Windows,有没有适用于任何平台的解决方案? - BHA Bilel

0

右键单击“命令提示符”,选择“以管理员身份运行”,然后您就可以

java -jar myprogram.jar

请阅读评论。楼主不想这样做。 - Roshana Pitigala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接