我有一個包含Java應用程序的JAR文件。我怎樣才能使它從Windows開始,而不需要用戶交互?在Windows啓動時運行Java應用程序
回答
答案this question可能會滿足您的需求。設置您的Java應用程序作爲Windows服務運行,你應該很好去。
創建一個.bat文件,並把這個裏面:
javaw -Xmx200m -jar C:\Path\to\jarfile\TheJar.jar
然後把.bat文件到Windows啓動文件夾。
One more thing: There's a difference between using java and javaw. While java is better when you are debugging an application, the application prints text or something like that, javaw is better when you don't need that. Why? Because java runs java program using a console that shows all that application prints (println's, exception stacktraces and so on) while javaw doesn't run on console.
使用 「winsw」 - http://kenai.com/projects/winsw - 這是爲Glassfish的第三版書面但Java程序一般工作得很好。
要求安裝.NET運行時。
這很簡單,你必須把快捷方式
的Windows 7 C:\users\All Users\Start Menu\Programs\Startup
(管理員)或User home directory(%userProfile%)
的Windows 10: 在運行shell:startup
在它的屬性 - >快捷方式 - >目標 - >java.exe -jar D:\..\runJar.jar
注意:這將運行您登錄
後,才具有管理員權
sc create serviceName binpath= "java.exe -jar D:\..\runJar.jar"
將創建Windows服務
,如果你得到超時使用cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war
,但即使有這樣的你會得到超時,但在後臺java.exe將被啓動。檢查任務管理器
在某些受限制的環境,因爲我是在企業環境中
錯誤:
The service did not respond to the start or control request in a timely fashion
在這種情況下
cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war
這會給你一個錯誤,如果你手動運行,但會在後臺運行。
注意:這將在窗口中運行,登錄啓動(登錄之前,基於服務 'Startup Type
')
Detailed explanation of creating windows service
註冊表編輯器
注意:僅編輯高級用戶
要爲當前用戶只運行
HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN
爲所有用戶
hkey_local_machine/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN
使用上述命令
哈哈創建名稱和路徑的字符串運行...容易! from run(u可以按start + r)寫regedit 然後: HKey本地機器 - > software-> microsoft-> windows-> current version - >運行 點擊它並在其他面板上點擊一下就沒事了選擇 添加 - >字符串值 命名在java 雙擊它,把它的值如下: 「javaw進程-Xmx200m -jar C:\路徑\到\ jar文件\ TheJar.jar」 希望我能幫助你^ _^
爲了從任何可執行使用srvany.exe
從Windows Resource Kits 2003創建服務(需要注意的空間=
後)::
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"
然後通過什麼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"
在上面,你看到的空間引用語法。下一步啓動服務提供:
cmd> sc start NAME
如果你犯的錯誤與重新檢查你的設置:
cmd> reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NAME" /s
和刪除服務:
cmd> sc delete NAME
並再次步驟。
訪問圖形用戶界面services.msc
並查詢procexp.exe
服務實際開始。
參見:creating a service with sc.exe; how to pass in context parameters
注意所有涉及的儀器是微軟官方!
如果您尚未準備好自己進行配置,或者您希望多列式計算機上具有相同功能,則可以使用Advanced Installer。您可以打包安裝在Windows上的jar文件並設置參數,以便在啓動時運行程序
如果要通過Java編程實現,可以直接寫入Windows註冊表啓動文件夾。
Here是如何以編程方式寫入Windows註冊表的鏈接。
當你已經實現了功能與登記工作比你需要的就是運行此代碼
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);
其中關鍵需求是什麼命令運行應用程序,如Java價值的罐子myJar.jar
什麼從自動運行您只需
WinRegistry.deleteValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "myJar autorun key");
UPDATE
01中刪除個Replace WinRegistry.writeStringValue with WinRegistry.setStringValue recent version of java 1.8.x
- 1. 運行程序在Windows啓動時
- 2. 在啓動時運行應用程序
- 3. 在啓動時運行應用程序
- 4. 代碼自動在Windows啓動時啓動Java應用程序
- 5. 在Windows CE 5.0啓動時運行應用程序
- 6. 在啓動Windows時運行nodejs應用程序
- 7. 如何在Windows/Linux/MacOS系統啓動時運行Java應用程序?
- 8. JVM/Java強制應用程序在首次啓動時運行較慢,Windows 8?
- 9. 如何在啓動Ubuntu Linux時運行Java應用程序
- 10. 使用Windows系統托盤啓動應用程序,但通常在用戶運行時啓動應用程序?
- 11. 只有在mysql運行之後,才能在windows啓動時運行java程序?
- 12. Windows運行時Javascript應用程序 - 啓動Javascript文件
- 13. C++應用程序自動運行在Windows啓動
- 14. 在啓動時在Ubuntu啓動時運行單聲道應用程序「啓動應用程序」
- 15. 在Windows啓動時啓動應用程序啓動
- 16. 應用程序啓動時應用程序類不運行?
- 17. Java啓動應用程序[WINDOWS]
- 18. Android - Java - 當設備啓動時運行應用程序
- 19. 在Windows上運行C#應用程序啓動
- 20. 如何在Windows啓動時自動啓動應用程序?
- 21. QProcess不啓動Windows應用程序下的Java應用程序
- 22. 在Windows啓動時運行應用程序時找不到app.config文件
- 23. FIREMONKEY - 運行啓動程序啓動應用程序(OSX)
- 24. c#在Windows啓動時運行的程序行爲奇怪
- 25. 在啓動時自動運行EFI應用程序
- 26. 如何在系統啓動時自動運行應用程序?
- 27. 春季啓動應用程序時,掛在命令行運行
- 28. 在應用程序啓動時運行python-rq工作進程
- 29. 彈簧集成 - 在應用程序啓動時運行流程
- 30. 如何在應用程序運行時啓動進程?
這隻 – 2011-05-10 16:58:17
發生在用戶登錄英寸任何其它的方式不是將它保持內部啓動文件夾 – 2013-11-21 15:53:25
@ThorbjørnRavnAndersen當將它,否則happend? – 2015-05-26 14:12:00