将JAR编写成WINDOWS服务的过程
大概步骤如下:
1. 工程打包JAR
2. 用EXE4J 将 JAR 打包成 EXE
3. 用INNO SETUP 将 EXE 和 JRE 打包成安装包
4. 编写脚本启动服务
详细步骤如下:
=============EXE4J ==============
1.下载exe4j_4.0破解版(含注册机).rar
2.解压后安装到任意目录并使用Keymaker.exe注册。
3.我是使用Eclipse3.2 myeclipse5.0中的Export 导出的JAR。(将工程打包成JAR , 运行JAR所需的JRE和额外JAR由EXE4J完成)
4. JAR 打包 成EXE如下:
(4-1)主页面
(4-2) 选择打包方式,1。我的JAVA APPLICATION是SWT 我选择的是常规模式。
(4-3) 配置应用。
short name of you application: 随便起名。
Distribution source directiory:指定一个目录(此目录里应该含有,你要打包的JAR,并且打包成功后也制作好的EXE输出到此目录中)
Executable directory: 填写“.”即可。
(4-4) 配置EXE。
Executable type:
1. GUI application可执行应用 (生成可立即执行的EXE)
Console application 控制台应用(没试过)
Service windows 服务(生成带windows外壳的EXE)
2. Executable name:生成可执行文件名字
3.ICON FILE 指定图标。
4.其他如图选择吧。
(注意: 如果选择服务外壳的EXE,那么在Service options 可以选择服务启动模式)
(4-5) 配置JAR。
步骤如下:
1。点“+”,选择后如图,选择运行工程所需的额外jar。(例如,我将启动所需的额外JAR放置在第三步Distribution source directiory指定的目录中,LIB文件夹内)
2。点“+”,选择后如图,选择运行工程打包后的jar。
3。选择MAIN class。
(4-5) 配置JAR。
指定JAVA VERSION. 我是根据实际情况填写。
重点:将系统JRE中的拷贝到第三步Distribution source directiory指定的目录中。并点“+”选择好。这里是按照相对目录保存的。
当最后工程JAR打包成功后,EXE执行时,会根据相对目录找指定JRE。这样没有安装虚拟机的也可以运行成功。
我们利用INNO SETUP将EXE和JRE发布给用户。
(4-6) 编程成EXE了,生成后的EXE放置到之前指定目录中。
(技巧:在第四步,选择将JAR打包成GUI APPLICATION ,成功打包成EXE后,测试通过后,再改成SERVICE 重新打包)
=============INNO SETUP ==============
1.下载InnoSetup_523_WestKing_HA.rar.
2.安装
3.建立新脚本,按提示操作即可。
4.最终打包成SETUP.EXE(此名字可以在脚本里修改)
5.附件里有INNO_SETUP中文帮助文档。当然程序里也有帮助文件,可供参考。
(可以在安装包执行过程中执行一些BAT,或者在卸载前增加密码验证等)
重点:
1.安静模式安装
setup.exe /sp- /silent /norestart
2.将EXE注册服务
sc create BRServer binPath= "C:\Program Files\VirusMonitorServer\BRServer.exe" start= auto DisplayName= BRServer type= interact type= own
蓝色代表以SERVICE打包的EXE文件路径
绿色代表服务可以与桌面进行交互。
注册成功后通过命令行启动服务。
net start BRServer
3. 安装时执行BAT脚本启动服务(INNO SETUP中脚本设置){APP}就是安装后的工程目录
[Run]
Filename: "{app}\install.bat"; Description: "{cm:LaunchProgram,我的程序}"; Flags: hidewizard
4. 卸载时执行BAT脚本(INNO SETUP中脚本设置)
[UninstallRun]
Filename: "{app}\uninstall.bat"; Parameters: "/x"