java工程師技巧:項目中有一個Java應用程序,交付後用戶要求要把這個程序做成後台服務程序,即:系統啟動後該程序可以自動啟動,並且在前台不要出現運行窗口,維護人員只要在“服務管理”(Windows)中選擇啟動或停止即可。
解決辦法如下:
Linux
在Linux中注冊後台服務程序相對容易,只需編輯/etc/init.d/boot.local文件,在boot.local文件裡加上下面這句腳本:
/iapaPPServer/MessageServer2.1/run.sh
其中run.sh是Java應用的運行腳本
Windows
在Windows下的情況較為復雜,需要使用Windows提供的兩個工具:instsrv.exe(下載)和Srvany.exe(下載)。
instsrv: 這個工具是把win32程序變成系統服務。
基本用法:
instsrv [服務名] [應用程序絕對路徑] (增加服務)
instsrv [服務名] REMOVE (刪除服務)
但是並不是所有程序都適合做系統服務的,注冊成系統服務後就是無法啟動的,這時就需要用到srvany.
srvany: 這個工具就是用來解決上面的工具中的問題,你注冊的時候把它當作你要的服務,在用它來啟動你的應用程序。
基本用法:
instsrv [服務名] [srvany的絕對路徑]
具體步驟如下:
1. 注冊服務: path\instsrv 服務名 path\srvany.exe
2. regedit打開注冊表
3. 進入HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Services\服務名
4. 右鍵-新建-項 填入 Parameters
5. 打開Parameters,右鍵-新建-字符串值 Application
6. 雙擊Application 填入 應用程序的絕對路徑,如: D:\workspace\app\main.exe
7. 右鍵-新建-字符串值AppDirectory
8. 雙擊AppDirectory 填入 應用程序的工作目錄,如: D:\workspace\app\
9. 啟動服務。
在Parameters裡還可以添加很多鍵值:
AppDirectory 工作目錄
AppParameters 你的應用程序的參數。
AppEnvironment 運行環境變量。