bat文件启动jar包做成Windows系统服务

原创 2015年11月19日 13:22:14

此次项目使用的是Win7系统

at文件[含有启动jar包]做成系统服务
Bat文件内容:

@echo off
cd d:/test/
echo in success!
ping 127.1 > test11log.txt
java -jar 1.jar


如果是双击bat文件是可以直接运行jar文件的
但是由于需要系统服务执行bat文件,所以系统必须配好Java环境变量
说一下我的环境变量的配置:
JAVA_HOME: C:\Program Files\Java\jdk1.6.0_26
CLASSPATH: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
Path: C:\Program Files\Java\jdk1.6.0_26\bin;


第一步:
下载微软系统小工具 instsrv.exe和srvany.exe至C:\Windows\System32。
第二步:
运行Dos命令代码:instsrv ServiceName C:\Windows\System32\srvany.exe    
    (ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。) 
然后这样执行的结果是:
Unable to find the file at the given path
在仔细检查了参数之后,确定这是由于系统原因所引起的。
最终的原因在于,我们所使用的instsrv和srvany是32位的,而windows现在没有相对应的64位相对应工具发布。而程序本身是没有问题的,问题在于我们将instsrv和Srvany放到windows/system32正面,而在64位系统中,这里应该存放64位的程序,所以最终的解决问题很简单。我们只需要将这两个程序再copy至32位程序应该放置的地方,比如windows/sysWow64目录,这样就可以了。原先的相应步骤以及程序根本就不需要作任何改动。instsrv会自动地找到原先应该放在system32下的程序,而这个程序现在被放置在了SysWow64目录下。
简单一点的解决方法就是,将instsrv和srvany程序在windows/sysWow64目录下再copy一份,相当于在system32和sysWow64下都有程序,这样问题即解决。更底层的原因,也许只有微软能解释了,简而言之,在64位系统下,32位程序是看不到放置在system32下面的程序的,而它应该访问的system32目录被系统映射到了sysWow64目录下了,在运行时系统会自动地将相应的sysWow64目录映射为程序所认为的system32。
参考文档:http://en.wikipedia.org/wiki/WoW64


第三步:
    打开注册表,定位到下面的路径。 
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName 
    (同样的ServiceName是你刚才安装服务时自定义的服务名称。) 
    如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。 
    名称 Application 值为你要作为服务运行的BAT文件地址。 
    名称 AppDirectory 值为你要作为服务运行的BAT文件所在文件夹路径。 
    名称 AppParameters 值为你要作为服务运行的BAT文件启动所需要的参数。 [暂时没配置]


注:instsrv ServiceName remove 命令可删除服务。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用FullCalendar做一个自己的日程管理(二)- 事件篇

FullCalendar is a drag-n-drop jQuery plugin for displaying events on a full-sized calendar. 1. 鼠标点击事...

如何将bat发布为Windows服务

转自:http://www.blogjava.net/liuguly/archive/2010/01/18/309944.html  Java Service Wrapper工具把Java程序转换为...
  • lisa06
  • lisa06
  • 2010-03-15 14:57
  • 7701

java打包成window service服务

1 解释       java project  我说的是main方法作为程序入口的java工程,有别于 web project。      这样的工程 一般都是web proje...

java打包exe 制作安装包 With JRE 自启动

又是一个无聊的周末,硬着头皮给客户想出一套java程序打包的解决方案目标:有安装程序包像安装qq一样简单一直下一步即可 ,可卸载,要求程序自动启动,不需要单独安装JRE,就在写这套解决方案的时候,我真...

把 jar包 做成 windows 服务, 让它自动启动

把 jar包 做成 windows 服务, 让它自动在后台启动、运行 1, 准备工具 Hello.jar: 可运行的包。这里我的是最简单的say helloworld! Main函数所在类...

java jar包注册成Windows 服务 JavaService

http://download.forge.ow2.org/javaservice/JavaService-bin-1.2.12.zip http://download.forge.ow2.org/...

可执行java程序,打包成jar,并注册为Windows的系统服务

为了实现把自己的可执行java程序,打包成jar,并注册为Windows的系统服务, 1,采用了一个中间件 wrapper-windows-x86-32-3.5.25 (来自SourceForge)...
  • fall10
  • fall10
  • 2015-05-13 16:23
  • 1881

将bat文件注册成为系统服务

第一章 注册系统服务准备 1.1      注册系统服务前准备 1.1.1 涉及第三方软件 Ø Bat_To_Exe_Converter.exe (将*.bat文件转化为可执行*.exe文件...

用批处理自启动tomcat

 需求:在服务器上部署有tomcat服务,希望在每天指定的时间点重新启动tomcat 前提:已安装java并配置好了java的环境变量,windows操作系统 做法: 一:现在环境变量中配...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)