我正在研究一个java项目。该项目需要管理员权限才能在系统中执行某些进程。为此,有没有办法在启动项目时给予管理员权限?有没有办法用java的管理员权限启动命令提示符?
答案 0 :(得分:3)
免责声明:我假设您专门针对Windows平台提出此问题
我建议采用两种方式:
使用runas计划
这是最简单的方法,因为您实际上想要一个控制台窗口,所以密码提示看起来并不尴尬。另一方面,用户可能会发现将其密码输入控制台窗口是可疑的。
使用CreateProcessWithLogonW API函数
这要求您使用Win32 Java库。 (我建议JNA)。这是一项更多的工作,但由于标准的Windows登录对话框,它可能会带来更好的用户体验。
答案 1 :(得分:1)
您不能简单地请求admin-privileges,也不能从未使用admin-privileges启动的应用程序启动admin-command-line。这将是一个严重的安全问题。
相反,您可以检查您的应用是否以管理员权限启动,如果没有提示用户这样做(显示有关如何存档的一些方法)。
不幸的是,这种接缝是一个更大的问题,因为没有标准化的方法来覆盖所有平台。但是,这个主题提出了一些想法:Detect if Java application was run as a Windows admin