【第22期】观点:IT 行业加班,到底有没有价值?

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

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

相关文章推荐

java打包成window service服务

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

java jar包注册成Windows 服务 JavaService

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

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

【JavaService】部署Java jar为Windows后台服务

【JavaService】部署Java jar为Windows后台服务     将Java jar文件部署为Windows后台服务有多种方法:Service Installer、Java...

如何将bat发布为Windows服务

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

jar打包成exe,或者服务进行运行

最近写了一个java的socket服务类程序,打包成可运行的jar文件,点击运行直接弹出cmd窗口,但是有时候就不小心把cmd窗口关了,服务就停止了。。需要像个办法来实现jar做成一个类似与服务的程序...

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

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

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

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

windows环境下将java注册成为开机自启动服务

第一步:首先要将java工程打包为源代码 1、右击工程->Export 2、选择Runnable JAR file 3、填写输出jar程序名称存储路径,指定main类 4、...

JavaService将jar发布为windows 服务

1、下载JavaService.exe 2、在D盘建立一个文件夹如:D:/server 将要发布的jar文件和JavaService.exe拷贝到新建的server下面 3、用cmd命令进...

JAVA程序配置开机启动

思路就是将java应用程序打包成.jar文件,然后转成.exe,通过修改注册表来增加删除启动项,即将安装后的.exe执行文件添加到注册表中; 首先将java应用程序打包成.jar文件,可以利用如下...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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