最近有个技术需求,要把已写好的Java程序注册成Windows服务,网上搜了两个快捷办法,一个是Java Service Wrapper,这是个收费的第三方组件,免费的版本还没有适合64位Win7系统的,所以我就尝试了第二个办法——JavaService。

虽然JavaService的版本从网上搜来的比较老,配置过程还不算太麻烦。可是我整了一天,尝试了网上的各种说法,这个JavaService总是提示服务注册成功,但是启动总是失败。好不容易有一次把日志报错文件整出来了,从中发现原来项目封装成的可执行jar包中找不到某个类,上网搜了搜,我们在用Eclipse打包项目时,应该选择将引用的jar包中的类抽出到自己的项目中。OK,那这个问题解决了,结果一运行果断成功,但是,我想着把服务注册命令给精简一下吧,结果这么一改,又启动失败了,而且一直日志文件也没出来,说明JavaService自身在运行时就出问题了。结果在Google里搜索发现,原来是指定的JDK路径中有空格的原因。下面贴出命令行中的命令:

 JavaService -install Client "%JAVA_HOME%"\jre\bin\server\jvm.dll -Djava.class.path=
"%JAVA_HOME%"\lib\tools.jar;D:\JavaService\client.jar
-start com.yx.util.Main -out D:\JavaService\Logs\stdout.log -err D:\JavaServer\logs\stderr.log

这是我最开始的服务注册命令,命令中的各个参数就不再描述了,大家可以问“百老师”,说的很详细了。直接说上面命令中存在的问题,首先解决JDK路径中有空格的办法是加引号,而这里%JAVA_HOME%是读不出来的,即使使用"%JAVA_HOME%"\jre\bin\server\jvm.dll"这种写法也无济于事,不过大家可以尝试一下设置路径中没有空格的%JAVA_HOME%,看看"%JAVA_HOME%"这种写法是否起作用。由于本人机器上的JDK已经安装过了,所以就不再折腾了。

好了,展示一下正确的、起作用的命令:

 JavaService -install Client "C:\Program Files (x86)\Java\jdk1.7.0\jre\bin\server\jvm.dll" -Djava.class.path=
"C:\Program Files (x86)\Java\jdk1.7.0\lib\tools.jar;D:\JavaService\client.jar"
-start com.yx.util.Main -out D:\JavaService\Logs\stdout.log -err D:\JavaServer\logs\stderr.log

从上面的命令可以看出,我是把"%JAVA_HOME%"替换成了绝对路径,并将整个参数值用引号引了起来。这样服务就可以正常启动了。

JavaService应用中的注意事项的更多相关文章

  1. 关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议)

    关于JDBC学习过程中的注意事项(分享自己犯过的错误,写给初学JDBC的小伙伴的八条建议) 前言:最近在学习JDBC,总结了几个小问题,特地分享给大家,让大家不要犯这样的错误,也希望大家养成学会总结的 ...

  2. 从 注解和继承 到 JAXB中的注意事项

    从 注解和继承 到 JAXB中的注意事项 注解在继承中的行为 如果一个父类添加了一个注解,子类是否能取到这个注解呢?如下 package inheritance; import java.lang.a ...

  3. TransactionScope事务处理方法介绍及.NET Core中的注意事项 SQL Server数据库漏洞评估了解一下 预热ASP.NET MVC 的VIEW [AUTOMAPPER]反射自动注册AUTOMAPPER PROFILE

    TransactionScope事务处理方法介绍及.NET Core中的注意事项   作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.ht ...

  4. php课程 10-34 目录遍历中的注意事项是什么

    php课程 10-34 目录遍历中的注意事项是什么 一.总结 一句话总结:用scandir,会把目录和文件放到一个数组中. 1.移动文件怎么实现,php里面没有移动文件这个函数? 先复制,再删除 2 ...

  5. Django学习系列17:在模板中渲染待办事项

    前面提到的问题中在表格中显示多个待办事项 是最后一个容易解决的问题.要编写一个新单元测试,检查模板是否也能显示多个待办事项: lists/tests.py def test_displays_all_ ...

  6. JavaScript语言学习中的注意事项

    javascript: 基于浏览器 基于对象 事件驱动 脚本语言 由: javascript: ECMAscript(ES) DOM文档对象模型 BOM浏览器对象模型,三部分组成 使用js的三种方式 ...

  7. TransactionScope事务处理方法介绍及.NET Core中的注意事项

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.html 今天在写CzarCms的UnitOfWork的使用使用到了这个Transacti ...

  8. VB6程序中NULL注意事项

    VB6中从数据库中取出栏位值进行操作,若栏位值为Null,则必须小心处理,否则极易导致程序出错退出. 通常我们从recordset中取出栏位值采用Fields方法,加上栏位名称,如 rsMoney.F ...

  9. cin中的注意事项

    猎豹网校C++ Primer学习笔记 - ostartech - 博客园 https://www.cnblogs.com/wxl845235800/p/11396323.html 在VS中使用cin& ...

随机推荐

  1. jquery mobile导致无法修改textarea的高度

    在引用了jquery mobile的js库和样式的页面中,添加textarea标签,会导致无法调整其height属性,不管是用CSS还是JS,最终都会被替换成height=52px 解决办法:在页面中 ...

  2. Ext 中xtype一览

    基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...

  3. 算法库:jpeglib和pnglib安装配置

    类似于OpenCV的安装配置.只不过OpenCV有编译好的,而jpeglib和pnglib需要自己编译.其实,若要跟踪OpenCV的源码或要使用OpenCV的扩展包,OpenCV也得自己编译. Ope ...

  4. nyoj 68 三点顺序

    点击打开链接 三点顺序 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给 ...

  5. 共享有线实现手机上网,然后使用charles来抓包

    问题描述:共享有线实现手机上网(http://support1.lenovo.com.cn/lenovo/wsi/htmls/detail_1323385217890211.html)  [建议] 还 ...

  6. js 未结束的字符串常量错误解决方法

    1.JAVASCRIPT引用时,使用的字符语言不一致. 比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xx ...

  7. X230上安装Yosemite/Win7-黑苹果之路

    以前曾经在X230上安装了mavericks,但因为无线网卡问题最终作罢,现在换了SSD(128G).AR9285网卡,又冲刺了一把OSX,折腾了好几天,终于成了.特做记录如下: 首先,硬盘分区问题, ...

  8. 你不知道的JavaScript 二

    词法作用域 上次说到作用域,将其定义为一套规则,这套规则用来管理引擎如何在当前作用 域以及嵌套的子作用域中根据标识符名称进行变量查找. 作用域共有两种主要的工作模型.第一种是最为普遍的,被大多数编程语 ...

  9. 华为OJ平台——首次不重复字符

    题目描述: 输入一个字符串,输出字符串中第一个没有重复的字符,若没有满足条件的字符存在,则输出“.” 思路: 这题很简单,直接逐次比较就好了,但是没有考虑到更好效率的方法,以后想到的话再加上来 imp ...

  10. Linux选型:开源不是免费 首选红帽和SUSE

    首发:http://tech.it168.com/a2014/0324/1606/000001606245.shtml 企业级服务器系统选型报告:http://www.it168.com/redian ...