一个好老好老的老程序员了。
全部博文(915)
分类: Java
2019-11-06 09:44:41
为了排除各种干扰因素,专门开发了个简单的java程序用于测试,查找问题原因。测试程序非常简单,就是循环打印当前时间,如下所示:
点击(此处)折叠或打开
有了 jar 包,开始注册windows服务,服务注册成功,结果如下:
点击(此处)折叠或打开
点击(此处)折叠或打开
测试程序没有使用任何第三方库,排除库相关的问题;检查JAVA_HOME环境变量,没有问题;JAVA_HOME环境变量中存在空格问题,加双引号即可(即命令行中的 "%JAVA_HOME%"),不是这个问题;cmd.exe是以管理员身份运行的,不是管理员权限问题。各种办法都试过了,开始怀疑JavaService.exe有bug或者版本兼容问题,找到下载地址,这个程序最新版2.0.10都是2007年的,都十多年了,不可能有这样严重的bug这么多年过去了程序还没更新,2.0.10版网上有人也在用,也没说有问题啊!最后看到有人用JavaService_2_0_10-amd64这个版本,找来试试吧,死马当活马医了,结果这一试不要紧 ,居然启动成功了!
如果使用的是64位版本的Java,JavaService.exe也要用64位版本,切记!!!JavaService.exe下载页面的文件排列顺序很让人无语,下载过好几次都没有注意到64位版本的存在,尤其是我使用的2.0.10版,64位版本竟然在最下边,不拉到底根本就看不到!
补充:测试程序 demo 的服务 test 启动成功,但自己实际要运行的程序还是不能启动,原因是 JavaService -start 参数设置不对,我的程序是个springboot项目,启动类是“org.springframework.boot.loader.JarLauncher”,-start 参数改过来就好了。
最后,附上JavaService.exe下载地址: