Exécuter L'application Java au démarrage de Windows

j'ai un fichier JAR contenant une application Java. Comment puis-je le faire démarrer avec Windows, sans avoir besoin d'une interaction utilisateur?

34
demandé sur arooaroo 2011-05-10 20:52:47

8 réponses

créer un .le fichier bat et mettre ceci à l'intérieur:

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

alors mettez le .fichier bat dans le dossier de démarrage de windows.

autre chose: il y a une différence entre utiliser java et javaw . Alors que java est mieux quand vous déboguez une application, l'application imprime du texte ou quelque chose comme ça, javaw est mieux quand vous n'avez pas besoin de cela. Pourquoi? Parce que java exécute le programme java en utilisant une console qui montre tout ce que l'application imprime (println's, exception stacktraces et ainsi de suite) tandis que javaw ne fonctionne pas sur la console.

33
répondu MikeKusold 2011-05-10 16:56:54

c'est simple comme vous devez mettre raccourci dans

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

Windows 10: En Cours shell:startup

dans sa propriété - > raccourci - > cible - > java.exe -jar D:\..\runJar.jar

NOTE: Ceci ne sera lancé qu'après que vous vous soyez connecté


Avec Droit Admin

sc create serviceName binpath= "java.exe -jar D:\..\runJar.jar" va créer le service windows

si vous obtenez timeout utiliser cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war mais même avec cela, vous obtiendrez délai, mais dans le fond de java.exe sera lancé. Vérifiez dans le gestionnaire des tâches


Dans certains environnement restreint comme j'étais dans l'environnement de l'entreprise

erreur:

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

dans ce cas

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

cela vous donnera une erreur si vous exécutez manuellement mais en arrière-plan.

NOTE: Ceci s'exécute au démarrage de windows (avant l'ouverture de session, basé sur le service' Startup Type ')

explication détaillée de la création du service windows


Regedit

Note: modifier utilisateur avancé seulement

à exécuter pour L'Utilisateur courant seulement

HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN

pour tous les utilisateurs

hkey_local_machine/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN

créer une chaîne de caractères Avec le nom et le chemin en utilisant la commande ci-dessus

16
répondu Ravi Parekh 2017-05-24 10:21:45

la réponse à cette question pourrait convenir à vos besoins. Configurer votre application java pour qu'elle fonctionne comme un service windows et vous devriez être prêt à y aller.

12
répondu Stefan Kendall 2017-05-23 12:26:29

Haha...facile! à partir de run (u peut appuyer sur start+r) écrire regedit puis: HKey local machine->software->microsoft->windows->version actuelle -> exécuter cliquez dessus et dans l'autre panneau de droite, cliquez sur rien et choisissez ajouter -> la chaîne de valeur nom de il java double-cliquez dessus et mettre sa valeur comme suit: "javaw-Xmx200m-jar C:\Path\to\jarfile\TheJar.pot' J'espère que je pourrais vous aider ^_^

7
répondu user3379482 2018-10-02 14:22:22

si vous voulez le faire par programmation À partir de Java, vous pouvez écrire directement dans le dossier de démarrage du registre Windows.

Ici est lien comment ecrire dans le registre de Windows par programmation.

lorsque vous avez mis en œuvre la fonction pour travailler avec le registre que ce dont vous avez besoin est juste exécuter ce code

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);

où la valeur pour la clé doit être commande ce qui exécute votre application comme java-jar myJar.jar

pour l'enlever de l'autorun vous simplement

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

mise à JOUR

Replace WinRegistry.writeStringValue with WinRegistry.setStringValue recent version of java 1.8.x
6
répondu Mior 2018-01-03 06:06:36

afin de créer un service à partir de tout exécutable utiliser srvany.exe à partir de Windows Les Kits de ressources de 2003 (faire attention aux espaces après = )::

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"

puis passer ce que srvany.exe wrapper fera:

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"

au-dessus, vous voyez la syntaxe de citation pour les espaces. Service de démarrage suivant avec:

cmd> sc start NAME

si vous faites une erreur, revérifiez vos paramètres avec:

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

et supprimer le service:

cmd> sc delete NAME

et faire des pas à nouveau.

"1519100920 de Visite" GUI services.msc et de vérifier avec procexp.exe service de réellement commencer.

Voir aussi: la création d'un service avec sc.exe; Comment passer en contexte les paramètres

NOTE Toutes les personnes impliquées instruments est officiel de Microsoft !!!

2
répondu gavenkoa 2017-05-23 12:34:54

si vous n'êtes pas prêt à faire la configuration vous-même ou si vous voulez la même fonctionnalité sur les ordinateurs multiles, alors vous pouvez utiliser Advanced Installer . Vous pouvez empaqueter des pots à installer sur Windows et définir des paramètres qui exécuteront votre programme au démarrage

0
répondu Yanki Twizzy 2015-01-09 17:31:40

utiliser "winsw" - http://kenai.com/projects/winsw - qui a été écrit pour Glassfish v3 mais fonctionne bien avec les programmes Java en général.

nécessite que .NET runtime soit installé.

-1
répondu Thorbjørn Ravn Andersen 2011-05-10 16:59:00