2011-10-20 2094 views
1

我正在开发一个java项目。该项目需要管理员权限才能执行系统中的某个进程。为此,有什么办法在启动项目时给予管理员权限?有没有办法用java的管理员权限启动命令提示符?从java以管理员身份启动命令提示符(CMD)

+0

相关:[如何在Windows上以管理员身份运行Java应用程序](http://stackoverflow.com/questions/1385866) – McDowell

回答

3

免责声明:我猜你问这个专门为Windows平台

有两种方法,我建议:

使用runas程序

这是最简单的方法,因为您实际上需要一个控制台窗口,密码提示看起来并不笨拙。另一方面,用户可能会发现将他的密码输入到控制台窗口中是可疑的。

使用CreateProcessWithLogonW API函数

这需要你使用一个Win32 Java库。 (我推荐JNA)。这是一个更多的工作,但它可能导致更好的用户体验,因为标准的Windows登录对话框。

1

您不能简单地请求管理员权限,也不能从未使用管理员权限启动的应用程序启动管理员命令行。这将是一个严重的安全问题。

相反,您可以检查您的应用程序是否以管理权限启动,如果不提示用户这样做(显示如何对其进行归档的方法)。

不幸的是,这种接缝是一个更大的问题,因为没有标准的方法来覆盖所有平台。但是这个线程给出了一些想法:Detect if Java application was run as a Windows admin

相关问题