【问题标题】:Java CreateProcess Error in Windows 7 UACWindows 7 UAC 中的 Java CreateProcess 错误
【发布时间】:2011-11-07 19:54:51
【问题描述】:

我无法在 Windows 7 64 位工作站上以编程方式启动 Exe。如果 UAC 关闭,则 Exe 将从 bean 启动。如果 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});

谢谢。

【问题讨论】:

    标签: java windows-7 uac


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 2011-02-11
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 2012-02-04
      相关资源
      最近更新 更多