以管理员身份从java启动命令提示符(CMD)

时间:2011-10-20 07:54:32

标签: java command admin privileges prompt

我正在研究一个java项目。该项目需要管理员权限才能在系统中执行某些进程。为此,有没有办法在启动项目时给予管理员权限?有没有办法用java的管理员权限启动命令提示符?

2 个答案:

答案 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