Windows 7 UAC中的Java CreateProcess错误

时间:2011-08-31 17:38:12

标签: java windows-7 uac

我无法以编程方式在Windows 7 64位工作站上启动Exe。如果UAC关闭,那么将从bean启动Exe。如果启用了UAC,则java控制台将报告CreateProcess error=740, The requested operation requires elevation

java bean正在使用

在工作站上启动Exe
Process p = rt.exec(args);

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

感谢。

1 个答案:

答案 0 :(得分:0)

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

您可以尝试使用start命令克服此限制:

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

如果您可以更改.exe的启动,那么从清单中删除requestedExecutionLevel可能是一个选项,除非.exe确实需要管理员权限才能运行。