我正在尝试使用Apache commons守护程序启动Windows服务。它适用于Windows XP,但我试图在Windows 7 x64上运行它。它无法启动,我在日志中收到以下错误:
[2010-12-13 17:21:19] [info] Commons Daemon procrun(1.0.3.0)开始 [2010-12-13 17:21:19] [info]运行'NodeService'服务...... [2010-12-13 17:21:19] [info]开始服务...... [2010-12-13 17:21:19] [错误]创建java失败 [2010-12-13 17:21:19] [错误] ServiceStart返回1 [2010-12-13 17:21:19] [info]运行服务完毕。 [2010-12-13 17:21:19] [info] Commons Daemon procrun完成了
我设置了JAVA_HOME并将java bin添加到PATH,只是为了确定。我不确定它为什么没有启动,或者它是否与x64操作系统有关。它最初是为32位系统设计的。
答案 0 :(得分:11)
刚遇到同样的问题。您可以通过将JVM路径更改为指向x64版本来解决此问题,因为它默认使用x32
在Windows中右键单击系统托盘中的应用程序,然后选择配置
单击Java选项卡
将Java虚拟机设置为/或使用选择路径按钮:
C:\ Program Files \ Java \ jdk1.7.0_21 \ jre \ bin \ server \ jvm.dll
答案 1 :(得分:7)
您可以下载commons-deamon-1.0.15-bin-windows二进制文件,您可以看到文件夹层次结构如下;
在我的64位机器上,我遇到了与prunsrv.exe相同的问题。经过一些研究(apache的网站),解决方案是在64位机器的amd64下使用正确版本的prunsrv.exe。使用amd64 / prunsrv.exe对我有用。
答案 2 :(得分:3)
修正了问题。必须安装32位版本的JRE,因为它会查找该注册表信息。我有64位版本。
答案 3 :(得分:2)
当我们使用64位jre和32位ApacheDS时,通常会发生此问题。 我尝试了下面的解决方案,它对我有用。
设置JAVA_HOME和PATH环境变量:
JAVA_HOME - C:\ Program Files(x86)\ Java \ jre1.8.0_91
路径 - C:\ Program Files(x86)\ Java \ jre1.8.0_91 \ bin。
转到ApacheDS中的Java选项卡,取消选中使用默认复选框并将JVM设置为C:\ Program Files(x86)\ Java \ jre1.8.0_91 \ bin \ client \ jvm.dll
答案 4 :(得分:1)
在我的情况下,我将OpenJDK与tomcat9结合使用时,看到了类似的错误消息, 因此我将tomcat9w的属性更改为以“本地系统帐户”启动,并且还为我修复了jvm.dll问题“无法创建...。访问被拒绝”。
答案 5 :(得分:0)
在尝试将Apache TC作为服务启动时遇到了这个问题。通过运行TomCatW.exe // MS //,然后通过禁用Java VM默认设置并将其指向我的64位安装的JRE \ Server文件夹从系统托盘进行配置来修复此问题。
答案 6 :(得分:0)
检查tomcat配置中的路径。它在您的服务器中可能是错误的
答案 7 :(得分:0)
我在Tomcat 9和Java 11中也遇到了类似的问题,事实证明这是缺少的DLL依赖项。问题:
[2020-10-05 17:40:21] [info] [ 3528] Apache Commons Daemon procrun (1.2.2.0 64-bit) started.
[2020-10-05 17:40:21] [info] [ 3528] Running Service 'Tomcat9'...
[2020-10-05 17:40:21] [info] [ 5772] Starting service...
[2020-10-05 17:40:21] [error] [ 5772] The specified procedure could not be found.
[2020-10-05 17:40:21] [error] [ 5772] Failed creating Java 'C:\Program Files\jre11-x64\bin\server\jvm.dll'.
[2020-10-05 17:40:21] [error] [ 5772] The specified procedure could not be found.
[2020-10-05 17:40:21] [error] [ 5772] ServiceStart returned 1.
[2020-10-05 17:40:21] [error] [ 5772] The specified procedure could not be found.
[2020-10-05 17:40:21] [info] [ 3528] Run service finished.
[2020-10-05 17:40:21] [info] [ 3528] Apache Commons Daemon procrun finished.
这是在x64 Win 7计算机上。我在jvm.dll上使用了依赖项遍历器。原来我的机器上没有vcruntime140.dll。因此,我从MS网站安装了MS VC运行时2015。
请注意,Java 11不再具有单独的JRE。这就是从.zip文件而不是安装程序进行安装时得到的结果:缺少依赖项。
安装缺少的VC运行时后,Tomcat 9正常运行。