前言 java工程发布后,可以是jar、war文件,一般部署到Tomcat站点目录下,而控制台程序需要开启控制台窗口,我们希望开机启动并且不显示控制台,那么需要将jar文件服务注册到windows服务上,这样不管是开机启动、运行程序都不显示控制台页面,解决最多的方法是使用wrapper-windows软件包。 一、下载wrapper-windows文件,解压之后包括bin、conf、lib、src、logs、doc、bulid7个文件 下载地址:https://www.krenger.ch/blog/java-service-wrapper-3-5-14-for-windows-x64/ 二、新建测试打包目录。例如:创建testService文件夹,在testService文件夹下创建bin、conf、lib、logs 4个文件夹。 bin:需要将wrapper-windows解压文件bin目录下的InstallTestWrapper-NT.bat、StartTestWrapper-NT.bat、StopTestWrapper-NT.bat、UninstallTestWrapper-NT.bat、wrapper.exe这几个文件拷贝到bin目录下 conf:wrapper-windows解压conf下的文件拷贝到对应conf文件夹下 lib:wrapper-windows解压lib目录下wrapper.dll、wrapper.jar拷贝到lib目录下。同时,拷贝将启动程序所有jar文件。 三、修改testServic-->conf->wrapper.conf文件 1>如果本机,jdk环境变量已配置好可以忽略。 wrapper.java.command=java # Specify a specific java binary: #set.JAVA_HOME=/java/path #wrapper.java.command=%JAVA_HOME%/bin/java wrapper.java.command=java:如果本机已配置了jre,那么此项不需更改;否则的话,需要将jre复制到myWindowServ文件夹路径下(如和bin在 同一级,修改wrapper.java.command=../jre/bin/java.exe) 2>这里必须指定org.tanukisoftware.wrapper.WrapperSimpleApp wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp 3>将程序运行所有需要的jar包进行配置,lib文件中的wrapper.jar是必须的 wrapper.java.classpath.1=../lib/tellyes.jar wrapper.java.classpath.2=../lib/wrapper.jar 4>配置程序运行的所需要的内存大小 # Initial Java Heap Size (in MB) #wrapper.java.initmemory=3 # Maximum Java Heap Size (in MB) #wrapper.java.maxmemory=64 修改成 # Initial Java Heap Size (in MB) wrapper.java.initmemory=128 # Maximum Java Heap Size (in MB) wrapper.java.maxmemory=256 这里是限制服务所占用的最小和最大内存,根据程序运行的效果也可以不改。 5>配置程序启动入口函数 wrapper.app.parameter.1=自己入口文件函数(包名.函数名) 6>配置服务器名称、描述 wrapper.name=指定服务的名称 # Display name of the service wrapper.displayname=服务的显示名称 # Description of the service wrapper.description=服务描述 7>启动模式,默认AUTO_START or DEMAND_START 四、测试 运行“InstallTestWrapper-NT.bat”注册服务,如果没有其他异常的情况,在服务列表可以找到 运行“StartTestWrapper-NT.bat"开启服务 其他两个分别是“停止服务”、“删除服务”批处理文件 总结 下载wrapper版本必须跟电脑系统一致。之前我下载32位版本,服务可以注册成功,但是启动不了,错误日志显示不支持32位。 此外,如果自己项目涉及到其他配置文件,必须放在bin目录下。例如,程序启动需要获取config.xml节点value,那么config.xml必须拷贝到打包文件bin目录下。 不管是注册、启动服务,如果出现问题,可以根据logs目录下查看错误日志进行解决。