将jar文件安装为系统服务

最近做了一个项目要将开发好的项目打成jar包并安装成为系统服务运行,网上找过好多文章 但是不是全面 细节的地方好多没有阐述, 经过一番努力 系统服务安装成功,记录下,方便以后查阅


一、首先要将自己开发好的java项目打成jar包,不是我们平时打的只有class文件jar,而是生成可执行的jar-runnable jar

下面是用idea打包的过程

 1、file-ProjectStructure(ctrl+alt+shift+S)

2、将jar文件安装为系统服务

将jar文件安装为系统服务

module选择自己的项目,main class选择带main方法的class类 

二、找到合适的安装系统的工具 这里使用 JavaService.exe 这里有下载地址  http://download.****.net/detail/vvv_110/9850715

这里下载到的是64位的  如果在64位电脑上使用32位的JavaService.exe 会报非正确的32位程序  有类似的错误就是使用的软件位数不对了

如何知道下载到的JavaService.exe是多少位的  这里有个简单方法

打开windows自带的“记事本”,并使用记事本直接打开你的exe文件,第二行开头不远处有PE两个字母,再后面两个空格后第三个字符就是标记了,如果是字母L的话,就是32位应用程序,如果是d?就表示是64位应用程序

三、使用命令安装系统服务 执行命令之前先进入到JavaService.exe所在的目录 并将你上面打好的jar包也放在这个目录下,如果你的项目有依赖其他第三方jar包,将第三方的jar包都放到lib文件夹下并将lib放到和JavaService.exe的相同目录下,你项目所依赖的jar包在你打好包以后的target目录下lib目录里面,这里需要注意的是你第三方jar包是放在和你项目jar相同目录下还是放在相同目录的lib文件夹下是要看你打的项目jar的引用位置的,查看引用位置,用rar打开你的项目jar文件,META-INF下MANIFEST.MF文件里面如果class-path中jar包的前面带着lib 则需要放到javaservice.exe相同目录的lib下,否则和javaservice.exe相同目录 MAIN-CLASS ;记录的是主函数所在的类


 win+R  cmd  命令如下:

JavaService.exe -install ScoreMarkerService "%JAVA_HOME%"\jre\bin\server\jvm.dll -Djava.class.path="%JAVA_HOME%"\lib\tools.jar;F:\git\ExamStack\scoreMarker\ScoreMarker-2.0.0.jar -Xms500m -Xmx1024m -start com.examstack.scoremarker.ScoreMarkerMain  -out F:\git\ExamStack\scoreMarker\log\out.log -err F:\git\ExamStack\scoreMarker\log\err.log

执行命令之前确保自己的电脑上已正确安装了java环境 -start参数是主函数所在的类 -out和-err是日志的输出位置,启动时如果报错可以看日志找原因


四、本人实际安装的时候可没有注意到这么多需要注意的地方,经常报错,如果没有正确启动 也可以系统管理里面查看系统服务的日志 查看原因 我的电脑 右键 管理

将jar文件安装为系统服务


到这里就是我的安装过程了 希望大家好运 如果有问题 欢迎留言 大家一起探讨