zoukankan      html  css  js  c++  java
  • JavaService应用中的注意事项

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

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

    1 JavaService -install Client "%JAVA_HOME%"jreinserverjvm.dll -Djava.class.path=
    "%JAVA_HOME%"lib ools.jar;D:JavaServiceclient.jar 2 -start com.yx.util.Main -out D:JavaServiceLogsstdout.log -err D:JavaServerlogsstderr.log

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

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

    1 JavaService -install Client "C:Program Files (x86)Javajdk1.7.0jreinserverjvm.dll" -Djava.class.path=
    "C:Program Files (x86)Javajdk1.7.0lib ools.jar;D:JavaServiceclient.jar" 2 -start com.yx.util.Main -out D:JavaServiceLogsstdout.log -err D:JavaServerlogsstderr.log

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

  • 相关阅读:
    【小程序】---- 使用 Echarts 的方式
    【小程序】---- 使用 Vant 的方式
    WebSocket协议 与 IO多路复用
    python 实现发送邮件功能
    记一次Hadoop安装部署过程
    docker容器中布置静态网站
    [DL]面向稀有事件的 Logistic Regression 模型校准
    [Statistic] 置信度
    Leetcode1137. 第 N 个泰波那契数
    Leetcode1394. 找出数组中的幸运数
  • 原文地址:https://www.cnblogs.com/balanar/p/3174810.html
Copyright © 2011-2022 走看看