CreateProcess error = 740, la operación solicitada requiere elevación

Tengo un applet web que actualizo regularmente y finalmente decidí hacer un actualizador. Sin embargo, cuando descargo una actualización en Java, descarga bien. Sin embargo, cuando bash descomprimir + ejecutar la actualización usando Runtime.getRuntime().exec(pathToFile); Obtengo CreateProcess error=740, The requested operation requires elevation

¿Cómo puedo solucionar esto si el progtwig es un applet web? No puedo simplemente decirles que ejecuten sus navegadores como administradores. ¿Cómo puedo arreglar esto?

Uno de mis amigos estaba teniendo exactamente este mismo problema hace aproximadamente un mes (estaba desenrollando una actualización a través de un archivo .exe), y recuerdo que este enlace lo ayudó tremendamente: http://mark.koli.ch/2009/12 /uac-prompt-from-java-createprocess-error740-the-requested-operation-requires-elevation.html

Me gustaría hacer simplemente un comentario en su pregunta (no parece digno de una respuesta / solución), pero todavía no tengo suficientes representantes para comentar. :-PAG

Cuando .exec(cmd) , .exec(cmd) tu comando con cmd /c para que rt.exec("cmd /c ") con algo como rt.exec("cmd /c ") . Esto iniciará el proceso e invocará el UAC si es necesario.

Un trabajo manual alrededor de uno de nuestros ingenieros encontró, si no es su aplicación, iniciar un indicador de cmd, haga clic derecho en la ventana y haga clic en el elemento de menú “Ejecutar como administrador”. en mi caso, ¡ejecutar el archivo .jnlp funciona!

Tuve el mismo problema, resolverlo ejecutando la aplicación Java como administrador, para que sea permanente: haga clic con el botón derecho en su aplicación, vaya a la propiedad> Compatibilidad> marque “Ejecutar este progtwig como administrador”

(Tengo un archivo por lotes que ejecuta Java.exe -jar ….)

Me he enfrentado a ese problema también cuando intenté ejecutar la aplicación con el comando:

 cmd /c start  

Este comando no pudo ejecutar ejecutables que requieran acceso de administrador. En lugar de uso de

 rundll32 url.dll,FileProtocolHandler  

comando resuelto mi problema. Este comando activa el aviso de UAC, por lo que el usuario podría proporcionar el acceso correcto antes de que se inicie la aplicación.

En mi aplicación utilicé la función PrecessBuilder::start() . Esta función devuelve la instancia de java.lang.Process que estará activa ( process.isAlive() == true ) hasta que el usuario maneje el prompt de UAC, por lo que es mejor agregar algún bucle para esperar hasta que se dé cuenta de que la aplicación está en marcha. .

Razón:

Cuando intenta ejecutar su aplicación, su IDE intenta iniciar adb pero termina obteniendo un error de proceso 740 o adb abajo porque su IDE no puede ejecutar un archivo adb.exe desde las herramientas de su plataforma en su carpeta sdk.

Solución:

  1. Mata adb.exe, mata eclipse.exe del administrador de tareas en Windows.
  2. Cierre el eclipse y desconecta su teléfono y reinícielo, deshabilite la depuración de USB y habilítelo nuevamente.
  3. Ve al icono de eclipse, haz clic con el botón derecho y elige ejecutar como administrador
  4. Conéctelo a su dispositivo y ejecute su aplicación.

Una punta de oro: siempre ejecute su eclipse, administrador de SDK, símbolo del sistema como administrador para que su sistema otorgue permiso completo a la aplicación específica.

probado en la ventana 7 de 64 bits

dispositivo Samsung 4.4 eclipse ide