From https://blog.csdn.net/qq_40925189/article/details/102833531
第一種:需要登錄才能運行的方法
第一步:編寫運行jar包的bat文件
新建一個run.txt文件,將以下內容放進去,然后修改文件后綴為.bat
@echo off
java -jar C:\Users\Administrator\Desktop\test-0.0.1-SNAPSHOT.jar > C:\Users\Administrator\Desktop\test.log
pause
解釋:@echo off 執行該命令后,后面所有的命令行都不會顯示出來(但是程序的打印輸出會顯示)
> 將jar包控制台的輸出輸出到一個文件中(可以不輸出到文件中,因為文件可能會特別大)
pause 當執行到該命令時,會暫停命令行的執行,並打印顯示"請輸入任意鍵繼續..."的字符。可能是因為springBoot啟動時需要打印一堆東西的緣故,可能會額外彈出一個窗口顯示"請輸入任意鍵繼續..."的字符。然后你按任意鍵繼續即可,只要打印輸出的窗口不關,額外彈出的窗口關閉也沒事,就相當於一個啟動完成的標志吧。
PS:如果想要在一個bat文件中運行多個jar包,要這樣使用
@echo off
start cmd /c "java -jar d:\test.jar"
start cmd /c "java -jar d:\test2.jar"
pause
解釋: start 表示要執行一個命令或一個可執行的文件等。
啟動多個可執行文件:https://blog.csdn.net/qq_24489717/article/details/60957981
這樣每執行一個start cmd /c 命令就會彈出一個命令行窗口,所以要想辦法隱藏掉。因為有一個控制台打印的進程一直開着,所以關閉是關閉不掉的。
第二步:編寫vb腳本隱藏命令行窗口
因為若只執行第一步的話,啟動后會彈出一個或多個命令行窗口,當窗口關閉時,項目也停止了,所以編寫一個vb腳本隱藏命令行窗口,操作步驟:新建一個txt文件,將以下內容copy進去,修改文件后綴為vbs即可。內容如下
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c d:\run.bat",vbhide
作用就是去執行第一步的bat文件。
檢查有沒有啟動成功: netstat -ano | findstr 端口號
強制關閉進程: taskkill -f -pid 進程id
第三步:設置開機運行該腳本
找到這個位置
C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
或者這個位置
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
將第二步的vbs文件放進去就行了。
(注意,AppData和ProgramData是兩個隱藏文件,需要在查看中勾選隱藏的項目這個選項。以上兩個目錄都是windows的開機自啟目錄,區別就是第一個只是屬於當前登錄用戶的,第二個是屬於所有用戶的。
如果設置了開機密碼,則必須是輸入密碼后才會去執行vb腳本,注意!
第二種:不需要登錄也可運行程序的方法
方式一::利用組策略開機啟動項目
利用windows自帶的搜索工具,搜索"組策略",打開以下頁面
雙擊啟動,在啟動中添加vb腳本,即可實現不用登陸,也能開機啟動程序。個人電腦大部分都有這個組策略,但像windowsServer這樣的服務器就沒有這個(MD,親身體驗過...),但我們可以使用以下方式。
方式二:利用計划任務實現開機啟動
在任務創建的最后輸入用戶名和密碼即可。
圖中的test任務為我剛剛測試的任務,這是他的一些屬性。
test任務屬性圖
方式三:注冊成windows服務,並設置啟動方式為開機自啟
利用windows的sc(service create)命令。之后重啟服務器即可看到啟動成功
sc create 服務名 binPath=C:\Users\admin\Desktop\run.bat start= auto
查看是否啟動成功
在cmd中輸入services.msc ,查看是否有該服務
啟動,關閉,刪除該服務
net start 服務名
net stop 服務名
sc delete 服務名
————————————————
版權聲明:本文為CSDN博主「>no problem<」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_40925189/article/details/102833531
