I have a JAR file containing a Java application. How can I make it start with Windows, without needing user interaction?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
If you want to do it programmatically from Java you can write directly into Windows registry startup folder.
Here is link how to write into Windows registry programmatically.
when you have implemented function to work with registry than what you need is just run this code
where value for key need to be command what runs your application like java -jar myJar.jar
to remove it from autorun you simply
UPDATE
Haha...easy! from run(u can press start+r) write regedit then: HKey local machine->software->microsoft->windows->current version -> run click on it and in the other panel right-click on nothing and choose add -> string value name it java double click it and put it's value as follow: 'javaw -Xmx200m -jar C:\Path\to\jarfile\TheJar.jar' Hope that I could help you ^_^
it's simple as you have to put shortcut in
Windows 7
C:\users\All Users\Start Menu\Programs\Startup
(Admin) orUser home directory(%userProfile%)
Windows 10 : In Run
shell:startup
in it's property -> shortcut -> target - >
java.exe -jar D:\..\runJar.jar
NOTE: This will run only after you login
With Admin Right
sc create serviceName binpath= "java.exe -jar D:\..\runJar.jar"
Will create windows serviceif you get timeout use
cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war
but even with this you'll get timeout but in background java.exe will be started. Check in task managerIn some restricted environment as I was in corporate environment
ERROR:
The service did not respond to the start or control request in a timely fashion
In this case
cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war
This will give you an error if you run manually but will run in background.
NOTE: This will run at windows logon start-up(before sign-in, Based on service '
Startup Type
')Detailed explanation of creating windows service
Regedit
Note: Edit Advanced User only
To Run for Current User Only
To Run for All Users
Create a String with Name and Path using above command
Use "winsw" - http://kenai.com/projects/winsw - which was written for Glassfish v3 but works well with Java programs in general.
Require .NET runtime installed.
If you are not ready to do the config yourself or if you want the same functionality on multile computers, then you can use Advanced Installer. You can package jars to be installed on Windows and set params that will run your program on startup
In order to create service from any executable use
srvany.exe
from Windows Resource Kits 2003 (take attention to spaces after=
)::Then pass what
srvany.exe
wrapper will do:Above you see quoting syntax for spaces. Next start service with:
If you make error recheck your settings with:
and remove service:
and make steps again.
Visit GUI
services.msc
and check withprocexp.exe
service actually start.See also: creating a service with sc.exe; how to pass in context parameters
NOTE All involved instruments is official Microsoft!!!