CreateProcess error = 740,请求的操作需要提升

我有一个我定期更新的网络小程序,我最终决定制作一个更新程序。 但是当我在java中下载更新时,它下载得很好。 但是,当我尝试使用Runtime.getRuntime().exec(pathToFile);解压缩+运行更新时Runtime.getRuntime().exec(pathToFile); 我得到CreateProcess error=740, The requested operation requires elevation

如果程序是Web applet,我该如何解决这个问题? 我不能告诉他们将浏览器作为管理员运行。 我怎样才能解决这个问题?

我的一个朋友在一个月前遇到了同样的问题(他正在通过.exe文件展开更新),我记得这个链接给他带来了极大的帮助: http : //mark.koli.ch/2009/12 /uac-prompt-from-java-createprocess-error740-the-requested-operation-requires-elevation.html

我会在你的问题下简单地做一个评论(似乎不值得直接回答/解决方案),但我还没有足够的回复评论。 😛

使用.exec(cmd) ,在命令前加上cmd /c这样就可以得到类似rt.exec("cmd /c ") 。 这将启动该过程并在需要时调用UAC。

围绕我们的一位工程师的One Manual工作发现,如果不是您的应用程序,请启动cmd提示,右键单击窗口并单击“以管理员身份运行”菜单项。 在我的情况下运行.jnlp文件工作!

我有同样的问题,通过以管理员身份运行java应用程序来解决它,使其永久化:右键单击您的应用程序,转到属性>兼容性>选中“以管理员身份运行此程序”

(我有一个批处理文件运行Java.exe -jar ….)

当尝试使用命令运行app时,我也遇到了这样的问题:

 cmd /c start  

此命令无法运行需要管理员访问的可执行文件。 而是使用

 rundll32 url.dll,FileProtocolHandler  

命令解决了我的问题。 此命令会触发UAC提示,因此用户可以在启动应用程序之前提供正确的访问权限。

在我的应用程序中,我使用了PrecessBuilder::start()函数。 此函数返回java.lang.Process实例,该实例将处于活动状态( process.isAlive() == true ),直到用户将处理UAC提示符,因此最好添加一些循环以等待,直到它确实考虑确定应用程序已启动。

原因:

当您尝试运行应用程序时,IDE会尝试启动adb,但最终会出现740进程错误或adb down,因为您的IDE不允许从sdk文件夹中的平台工具运行adb.exe文件。

解:

  1. 杀死adb.exe,从windows中的任务管理器中杀掉eclipse.exe。
  2. 关闭eclipse并断开手机并重新启动它并禁用USB调试并再次启用它。
  3. 右键单击eclipse图标,然后选择以管理员身份运行
  4. 将其连接到您的设备并运行您的应用程序。

黄金提示 – 始终以管理员身份运行您的eclipse,sdk管理器,命令提示符,以便您的系统为特定应用程序提供完全权限。

在窗口7 64位上测试

设备三星4.4 eclipse ide