Ejecutar la aplicación Java al inicio de Windows

Tengo un archivo JAR que contiene una aplicación Java. ¿Cómo puedo hacer que comience con Windows, sin necesidad de la interacción del usuario?

Crea un archivo .bat y ponlo dentro:

javaw -Xmx200m -jar C:\Path\to\jarfile\TheJar.jar

A continuación, coloque el archivo .bat en la carpeta de inicio de Windows.

Una cosa más: hay una diferencia entre usar java y javaw . Si bien java es mejor cuando está depurando una aplicación, la aplicación imprime texto o algo así, javaw es mejor cuando no lo necesita. ¿Por qué? Porque java ejecuta el progtwig java utilizando una consola que muestra todas las aplicaciones que imprime (println’s, stacktraces de excepción, etc.) mientras que javaw no se ejecuta en la consola.

es simple ya que tienes que poner un atajo en

Windows 7 C:\users\All Users\Start Menu\Programs\Startup (Admin) o el User home directory(%userProfile%)

Windows 10: en shell:startup Run shell:startup

en su propiedad -> acceso directo -> destino -> java.exe -jar D:\..\runJar.jar

NOTA: Esto se ejecutará solo después de iniciar sesión


Con el derecho de administrador

sc create serviceName binpath= "java.exe -jar D:\..\runJar.jar" servicio de Windows

si obtienes tiempo de espera usa cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war pero incluso con esto obtendrás tiempo de espera pero en el fondo java.exe se iniciará Verificar en el administrador de tareas


En un ambiente restringido ya que estaba en un entorno corporativo

ERROR:

The service did not respond to the start or control request in a timely fashion

En este caso

cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war

Esto le dará un error si ejecuta manualmente pero se ejecutará en segundo plano.

NOTA: Esto se ejecutará en el inicio de sesión de Windows (antes de iniciar sesión, en función del servicio ‘ Startup Type ‘)

Explicación detallada de la creación de servicio de Windows


Regedit

Nota: Editar Usuario Avanzado solamente

Para ejecutar solo para el usuario actual

 HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN 

Para ejecutar para todos los usuarios

 hkey_local_machine/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN 

Crear una cadena con nombre y ruta usando el comando anterior

La respuesta a esta pregunta puede adaptarse a sus necesidades. Configure su aplicación Java para que se ejecute como un servicio de Windows y debería estar listo para comenzar.

Jaja … ¡fácil! desde ejecutarse (puede presionar inicio + r) escribir regedit luego: HKey máquina local-> software-> microsoft-> ​​windows-> versión actual -> ejecutar haga clic en él y en el otro panel haga clic en nada y elija agregar -> string valor nombre java haga doble clic en él y ponga su valor de la siguiente manera: ‘javaw -Xmx200m -jar C: \ Path \ to \ jarfile \ TheJar.jar’ Espero poder ayudarlo ^ _ ^

Si desea hacerlo mediante progtwigción desde Java, puede escribir directamente en la carpeta de inicio del registro de Windows.

Aquí hay un enlace sobre cómo escribir en el registro de Windows programáticamente.

cuando ha implementado la función para trabajar con el registro de lo que necesita es simplemente ejecutar este código

 String value = "\"javaw -jar " + System.getProperty("user.dir") + "\\myJar.jar\""; WinRegistry.writeStringValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "myJar autorun key", value); 

donde el valor de la clave debe ser comando, lo que ejecuta tu aplicación como java -jar myJar.jar

para eliminarlo de la ejecución automática, simplemente

 WinRegistry.deleteValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "myJar autorun key"); 

ACTUALIZAR

 Replace WinRegistry.writeStringValue with WinRegistry.setStringValue recent version of java 1.8.x 

Para crear un servicio desde cualquier ejecutable, use srvany.exe desde Windows Resource Kits 2003 (preste atención a los espacios después de = ) ::

 cmd> sc create NAME binPath= "c:\Program Files\Windows Resource Kits\Tools\srvany.exe" ^ type= own start= auto error= normal DisplayName= "NAME for services.msc" 

A continuación, pase lo que srvany.exe contenedor srvany.exe :

 cmd> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NAME\Parameters" ^ /v "Application" ^ /d "\"c:\Program Files\Java\jre7\bin\java.exe\" -cp c:\home\devel\service Main" 

Arriba puede ver una syntax de espacios. Siguiente comienzo de servicio con:

 cmd> sc start NAME 

Si comete un error, vuelva a verificar su configuración con:

 cmd> reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NAME" /s 

y eliminar el servicio:

 cmd> sc delete NAME 

y hacer los pasos de nuevo.

Visite GUI services.msc y compruebe que el servicio procexp.exe realmente se inicia.

Ver también: crear un servicio con sc.exe; cómo pasar parámetros de contexto

NOTA ¡ Todos los instrumentos involucrados son oficiales de Microsoft !

Si no está listo para hacer la configuración usted mismo o si desea la misma funcionalidad en computadoras múltiples, entonces puede usar el Instalador Avanzado . Puede empaquetar tarros para instalar en Windows y establecer parámetros que ejecutarán su progtwig al inicio

Use “winsw” – http://kenai.com/projects/winsw – que fue escrito para Glassfish v3 pero funciona bien con los progtwigs de Java en general.

Requiere .NET runtime instalado.