programa permisos ejecutar ejecuta desde con como administrador java windows batch-file administrator runas

permisos - Ejecute el archivo Java como administrador con todos los privilegios



ejecutar un cmd desde java (4)

Ejecute su símbolo del sistema en modo administrador. Para más específico: 1. Localice el archivo% windir% / system32 / cmd.exe. 2. Haga clic derecho y ejecutar como privilegio de administrador.

He hecho una aplicación Java y la probé en mi pc y en mi pc acuñada, hasta ahora muy bien ... Pero esta aplicación es para otro amigo mío que tiene una disco, cuando "instalé" mi aplicación en su PC ( Windows Vista 32 bits) no funcionó, luego voy buscando y buscando y descubro que el problema como los privilegios ... Instalé una máquina virtual de vista 32 bits y xp 32 bits para hacer algunas pruebas y me '' m no puedo ejecutar mi aplicación con todos los privilegios de administrador.

¿Hay alguna manera de crear un archivo por lotes o algo que me permita ejecutar mi aplicación con todos los privilegios? Me refiero a todo porque necesito conectarme a un puerto COM de la computadora para obtener algunos datos de un dispositivo y necesito almacenar algunos archivos, y dado que estoy usando una biblioteca externa, podría necesitar algunos privilegios que no sé ... Lo he intentado y nada funciona:

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

usando los scripts elevate de microsoft, también creé un archivo por lotes con

runas /user:Administrator myjar.jar

pero nada funcionó: / Any ideas? gracias de antemano


Esta respuesta es para aquellos que desean otorgar privilegios administrativos a sus jarras o clases de Java. Después de desarrollar con éxito un exe para editar archivos guardados en admin. directorios restringidos, he desarrollado estos pasos a seguir para ti, espero que esto te pueda ayudar: Cosas que debes entender: 1) Los jars no se compilarán directamente con privilegios, sino que debes envolverlos con algún otro archivo de mainfest para finalmente tener el exe archivos capaces de ejecutarse en Windows XP / Vista / o una versión superior con privilegios. En realidad, la posible respuesta hasta ahora es que antes de ejecutarse, exe obliga al usuario a otorgar derechos de administrador a diferencia de antes, donde se espera que el usuario sepa cómo ejecutar jar con derechos de administrador que no son amigables.

Ahora los sencillos pasos: 1) Cree su archivo jar como try2.jar que contiene algún archivo mainifest-- My1.mf como siempre. Así que, la ruta absoluta del archivo jar sería C: / try.jar.

2) Ahora necesita descargar un software "Launch4j" que lo ayudará a envolver archivos jar. Sus enlaces de descarga son: http://sourceforge.net/projects/launch4j/files/launch4j-3/3.1.0-beta2/

3) Ahora saca 5 min. y mira este tutorial: http://www.youtube.com/watch?v=mARUFRknTYQ ; esto te dirá las funciones básicas de Launch4j. Pero aquí no estará claro cómo crear un archivo de manifiesto para su exe.

3) Después de aprender esto, cree un archivo de manifiesto, es un archivo de texto simple con la extensión ".manifest" guardada. Pero aquí hay ciertas cosas que hay que tener en cuenta: en primer lugar, su archivo mainfest debe tener el mismo nombre que el de su último archivo ejecutable. En mi caso, se suponía que el nombre de mi exe era "Launchme.exe", por lo tanto, mi archivo de manifiesto debía llamarse "Launchme.manifest". En segundo lugar, en el archivo de manifiesto solo copie este contenido:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="highestAvailable" uiAccess="False" /> </requestedPrivileges> </security> </trustInfo> </assembly>

Copie el código anterior en su archivo de manifiesto. aquí la línea 6 es la clave de todo el problema. Entonces guárdalo y ciérralo.

4) Ahora inicie Launch4j, complete todos los campos de texto enseñados como en video según sus condiciones. En la columna de mainfest de Wrapper, agregue este archivo de manifiesto de archivo. Luego haga clic en la opción "guardar configuración" y luego haga clic en - Build Wrapper.

Ahora tienes un exe que contiene tu jar que solicita al usuario que otorgue derechos de administrador antes de ejecutarlo. ¡Ahora el usuario no tiene conocimiento de otra cosa que no sean clics!


He creado una solución genérica basada en Java para este problema en github en https://github.com/rritoch/super-user-application . El sistema usa JNA o Sudo para proporcionar una aplicación java multiplataforma (jar) que se ejecuta con derechos de administrador. La forma más fácil de usarlo es hacer que su clase principal amplíe la clase abstracta de aplicación SuperUser y llame a SU.run (new MyMain (), args) desde su función principal de la siguiente manera.

package com.vnetpublishing.java; import com.vnetpublishing.java.suapp.SU; import com.vnetpublishing.java.suapp.SuperUserApplication; public class TestAdmin extends SuperUserApplication { public static void main(String[] args) { SU.run(new TestAdmin(), args); } public int run(String[] args) { System.out.println("RUN AS ADMIN! YAY!"); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } return 0; } }

Esta biblioteca ha sido probada en Linux y Windows, pero también debería funcionar para Mac / OSX. El principal inconveniente de esta solución es que solo funciona cuando la aplicación se ejecuta como un jar. Cuando el jar ejecutado no tiene derechos de administrador, necesita volver a ejecutar el jar con privilegios de administrador. Si la aplicación no se ejecutó desde un contenedor, arroja una InvalidStateException.

Siéntase libre de contribuir a este proyecto.


Usando Gradle

También puede usar Gradle y el complemento launch4j . Comience en el paso 3 de la respuesta de Ashium , es decir, cree un archivo myapp.manifest con

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="highestAvailable" uiAccess="False" /> </requestedPrivileges> </security> </trustInfo> </assembly>

luego agrega a tu build.gradle

plugins { id ''java'' id ''edu.sc.seis.launch4j'' version ''2.4.3'' } launch4j { mainClassName = ''com.mypackage.MainClass'' icon = "$projectDir/icons/icon.ico" manifest = "$projectDir/myapp.manifest" }