permisos para instalar esta ejecutar desfasada desactivar darle como administrador actualizar actualizaciones java windows admin uac exe

instalar - permisos para ejecutar java



Java: ejecutar como administrador (8)

Acceda a java.exe y javaw.exe dentro de la carpeta de instalación. es decir, C: / Archivos de programa / Java / jre7 / bin o C: / Archivos de programa / Java / jdk1.7.0_17 / bin, haga clic en ellos y seleccione propiedades -> compatibilidad y allí: marque "ejecutar este programa como administrador".

¿Hay alguna manera en Java para pedirle al sistema que controle la funcionalidad del administrador? Por supuesto, sin hacer: haga clic derecho en el exe -> ejecutar como administrador.
Lo que quiero es que venga un marco de UAC como en Windows Vista o Windows 7.

¿O debo hacer algunos ajustes mientras hago un exe del jar?



La forma más fácil sería usar un contenedor para iniciar su JVM y luego elevar el contenedor. Utilizo un simple script de instalador de NSIS con el complemento de UAC para hacer esto:

; Java Launcher ;-------------- ; You want to change the below lines Name "my program" Caption "my program Launcher" Icon "iconfile.ico" OutFile "java launcher.exe" ; param below can be user, admin RequestExecutionLevel admin !include UAC.nsh SilentInstall silent AutoCloseWindow true ShowInstDetails show Section "" ; command to execute StrCpy $0 ''javaw -jar myjarfile'' SetOutPath $EXEDIR Exec $0 SectionEnd


La respuesta de ZippyV está bien si tiene la intención de ejecutar javaw.exe con privilegios de administrador del sistema, que si el código UAC puro es lo que está siendo bloqueado por el UAC (como tratar de escribir un archivo en un directorio privilegiado), entonces eso es lo que tendrá que hacer.

Sin embargo, si intentas lanzar algo externo, pero solo con elevación, podrías agrupar un exe que eleve un comando. Aquí hay uno .



Si puede ejecutar lo que necesite para ejecutar desde un archivo por lotes de CMD de Windows. Puede crear un archivo de proceso por lotes (incluso sobre la marcha) desde su aplicación java que hace lo que quiere e iniciarlo. Lo tengo funcionando, por lo que mi programa java lo inicia y muestra el mensaje de Windows UAC normal al usuario y luego ejecuta los comandos si elige SÍ.

String[] commands = {"cmd.exe", "/C" "mybatchfile.bat"}; ProcessBuilder pb = new ProcessBuilder(commands); .. pb.start();

Aquí hay un hilo que trata de solicitar acceso UAC dentro de un archivo por lotes de Windows: Cómo solicitar acceso de administrador dentro de un archivo por lotes

NOTA: ProcessBuilder puede ser un poco complicado de manejar, usando un StreamGobbler para manejar los trabajos de salida para mí: Handle Input using StreamGobbler


Utilizo la línea de comando en Windows para este propósito. En el menú Inicio, escriba cmd en el cuadro de texto y cuando aparezca el programa cmd.exe , haga clic con el botón derecho y seleccione Ejecutar como administrador. Ahora cuando ejecutes java -jar it se ejecutará con derechos de administrador.


Voy a explicar cómo se obtiene la aplicación Java elevada

import java.io.IOException; public class RunAsAdminExample { public static void main(String[] args) throws IOException { Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process <program.exe> -verb RunAs"); } }

program.exe es un ejemplo, simplemente llame notepad.exe

import java.io.IOException; public class RunAsAdminExample { public static void main(String[] args) throws IOException { Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process notepad.exe -verb RunAs"); } }

Que tienes un programa elevado Te recomiendo - Necesitas convertir a contenedor binario como Launch4j o Parcle de lo que puedes hacer clic - Si creas un instalador personalizado (creado por Java Swing o Awt).

Espero que tengas una buena solución :) - Si usas Linux o Mac OS X de lo que necesitas, usa el parche binario Parcle u otro envoltorio si sabes ...

// EDITAR buena idea por Kaptkaos que escribir simple:

import java.io.IOException; public class RunAsAdminExample { public static void main(String[] args) throws IOException { Process myappProcess = Runtime.getRuntime().exec("powershell.exe Start-Process -FilePath java.exe -Argument ''-jar runasadmin.jar'' -verb RunAs"); } }

No olvides usar '''' y "" si -jar .jar de -Argumento de Start-Process. Nota: no olvides: si utilizas el directorio de trabajo y el archivo jar, debes tener el ejemplo del directorio de trabajo. / Myjar.jar java. / RunAsAdminExample.class Que puedes ver elevado Java con argumento :)

¡Atentamente!