2011-08-31 84 views
0

我无法在Windows 7 64位工作站上以编程方式启动Exe。如果UAC关闭,则Exe将从该Bean中启动。如果UAC处于打开状态,则java控制台报告CreateProcess error=740, The requested operation requires elevationWindows 7中的Java CreateProcess错误UAC

一个Java Bean推出使用

Process p = rt.exec(args); 

Have also the ProcessBuilder class. 
ProcessBuilder p = new ProcessBuilder(new String[] { "cmd.exe", "/C", m_sProg, m_sParams}); 

感谢工作站上的EXE。

回答

0

您的.exe似乎需要通过嵌入式清单提升。要启动它,您必须使用ShellExecuteShellExecuteEx WinAPI函数。

你可以尝试使用start命令来克服这种限制:

new ProcessBuilder(new String[] { "cmd.exe", "/C", "start", m_sProg, m_sParams}); 

如果你可以改变你的.exe文件启动,然后删除从清单requestedExecutionLevel可能是,除非.exe文件的选项确实需要管理员权限才能运行。