Exécuter L'application Java au démarrage de Windows
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.
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
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.
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 ^_^
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
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" GUIservices.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 !!!
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
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é.