当我尝试通过Java ProcessBuilder类在任务调度程序中创建新任务时,我得到一个访问被拒绝错误的Windows Vista.在XP上它工作得很好.
当我使用"Run as adminstrator"选项时,它也可以在Vista上运行.
然而,这是一个额外的步骤,用户可能不知道这一点.当用户只需双击应用程序图标时,它将失败并拒绝访问.我的问题是如何在启动后立即强制java应用程序重新获取管理员权限?
您是否考虑过使用launch4j在.exe中包装Java应用程序?通过执行此操作,您可以嵌入清单文件,该文件允许您指定可执行文件的"执行级别".换句话说,您可以控制应该授予正在运行的应用程序的权限,从而有效地告诉操作系统"以管理员身份运行",而无需用户手动执行此操作.
例如...
build.xml文件:
myappConfig.xml:
false gui bin\myapp.jar bin\myapp.exe normal http://java.com/download true false myapp.manifest 1.5.0 preferJre
myapp.manifest:
有关模式详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb756929.aspx和launch4j网站.