¿Cómo puedo elevar fácilmente cuando ejecuto un archivo .jar?

8

Al intentar ejecutar un archivo Jar de instalador, recibo un error que dice que se denegó el acceso de escritura para crear un directorio en la carpeta Archivos de programa.

Haga clic con el botón derecho -> Ejecutar como administrador no está disponible en los archivos Jar (supongo que es porque Java.exe los consume; el shell no los trata directamente como ejecutables).

¿Cuál es la forma más rápida y sencilla de ejecutar un archivo .Jar con elevación?

Estoy evaluando esta herramienta para recomendarla a nuestro equipo de desarrollo, y la instalarán manualmente en sus cajas. Prefiero una opción que no requiera que escriban nada.

Merlyn Morgan-Graham
fuente

Respuestas:

6

Para que a otros les resulte más fácil ejecutar el instalador JAR sin tener que hacer cambios en todas sus computadoras, es probable que desee envolverlo con un script por lotes que eleve y ejecute el archivo JAR. Puede hacerlo fácilmente con Elevation PowerToys de Microsoft . Incluyen una utilidad útil que le permite iniciar cualquier cosa como administrador simplemente con el prefijo con el elevatecomando.

Una vez que los haya descargado, extráigalos a una carpeta y copie el elevate.cmdy elevate.vbsa la carpeta con el archivo JAR. Luego, escriba un nuevo script por lotes con una .cmdextensión con los siguientes contenidos:

elevate cmd /c start "%CD%\installer.jar"

Eso lanzará el archivo JAR con el controlador predeterminado para dichos archivos en su sistema (usando el startcomando de cmd). %CD%apunta al directorio de trabajo actual del script y es necesario porque la línea de comando elevada comenzará en c:\windows\system32.

Si, por alguna razón, Java no está configurado correctamente como el controlador predeterminado para los archivos JAR, eso podría fallar. Si puede contar con que Java esté en el mismo lugar en todos los sistemas, podría hacerlo de esta manera:

elevate "c:\Program Files\Java\jre\bin\java.exe" -jar "%CD%\installer.jar"

Una vez que haya hecho cualquiera de esos, simplemente ejecute el archivo por lotes y Windows solicitará la elevación del administrador e iniciará el instalador.

Incluya los scripts de elevación, su script y los archivos del instalador en un archivo autoextraíble que inicie el script y puede envolverlo en un pequeño .exearchivo agradable . ( 7-Zip es una gran herramienta de código abierto para crear dichos archivos).

Para obtener más información sobre Elevation PowerToys, consulte el artículo vinculado o el archivo README incluido con la descarga.

Parches
fuente
Impresionante respuesta :) Gracias! Voy a esperar para aceptarlo, así que tal vez la pregunta / tu respuesta consiga más tráfico (¿creo que funciona de esa manera?)
Merlyn Morgan-Graham
@Patches, ¿cuál es la forma que no es de terceros para hacer esto?
Pacerier
@Pacerier Incluso Windows 10 todavía no tiene un método incorporado para elevarse desde la línea de comandos.
Parches del
2

Acabo de tener la oportunidad de hacer esto y descubrí que la forma más fácil, sin tener que descargar e instalar Elevation PowerToys, era ejecutar cmd.exe como administrador y luego llamar java.exe -jar 'installer.jar'desde la línea de comandos. Por supuesto, primero tenía que encontrar java.exe, pero eso no tardó mucho ...

Richard Turner
fuente
2
En realidad solo necesitas llamar installer.jar. Localizará automáticamente el programa predeterminado "abrir con" que ya se ha configurado en java.exe. (Si no fuera así, hacer doble clic en el .jar no lo ejecutaría en primer lugar.)
Pacerier