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 命令可删除服务。

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

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

用批处理文件添加系统服务

以下内容转自:http://ethan163.javaeye.com/blog/804296 命令行使用sc命令. 关于sc命令的详解,请自行查看帮助(sc /?),在此只简单提及如何加入系统...

bat 添加系统服务 wrapper

使用sc create 虽然能够添加服务由于程序,不符合win service的规范,所以不能作为服务启动。使用wrapper可以解决该问题。只需要实现对应的就接口,把对应的启动函数添加到start函...

如何将bat发布为Windows服务

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

SC命令---安装、开启、配置、关闭windows服务 bat批处理

废话不多说,看命令行更直接! 一、直接使用cmd来进行服务的一些操作 1、安装服务 sc create test3 binPath= "C:\Users\Administrator\Desk...
  • Moruna
  • Moruna
  • 2013年06月27日 18:35
  • 48358

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

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

java程序,在windows下设置为开机自启动

1、制作可运行jar包 2、设置开机自动,后台运行,确保不关 一下这几个方法是我试过的,由于有不同的问题,以后慢慢总结 (1)、制作bat文件,放在“启动”里面 (2)、设置组策略 (3)、制作成服务...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bat文件启动jar包做成Windows系统服务
举报原因:
原因补充:

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