Apache Commons Daemon“Failed creating Java”错误

14

我正在尝试使用Apache Commons Daemon启动Windows服务。它可以在Windows XP上工作,但我正在尝试在Windows 7 x64 上运行它。启动失败,并且在日志中出现以下错误:

[2010-12-13 17:21:19] [info] Commons Daemon procrun (1.0.3.0) started
[2010-12-13 17:21:19] [info] Running 'NodeService' Service...
[2010-12-13 17:21:19] [info] Starting service...
[2010-12-13 17:21:19] [error] Failed creating java 
[2010-12-13 17:21:19] [error] ServiceStart returned 1
[2010-12-13 17:21:19] [info] Run service finished.
[2010-12-13 17:21:19] [info] Commons Daemon procrun finished

我已经设置了JAVA_HOME并将Java的bin添加到PATH中,只是为了确保。我不确定为什么它没有启动,或者是否与x64操作系统有关。它最初是为32位系统设计的。

10个回答

18

刚遇到了同样的问题。你可以通过将JVM路径更改为指向x64版本来解决此问题,因为默认情况下它使用x32。

  • 在Windows中,右键单击系统托盘中的应用程序,然后选择“配置”

  • 点击“Java”选项卡

  • 设置Java虚拟机或使用选择路径按钮:

    C:\Program Files\Java\jdk1.7.0_21\jre\bin\server\jvm.dll


系统托盘是什么? - Edd
这是解决方案,@anom217,你应该接受它作为答案。 - zygimantus

8
您可以下载commons-deamon-1.0.15-bin-windows二进制文件,并且您可以看到以下文件夹层次结构:
- 列表项 - amd64 - ia64 - prunsrv.exe - prunmgr.exe 在我的64位计算机上,我遇到了与prunsrv.exe相同的问题。经过一些研究(apache的网站),解决方法是在64位机器上使用amd64下的正确版本的prunsrv.exe。使用amd64/prunsrv.exe对我有效。

3

问题已解决。需要安装32位版本的JRE,因为它会查找该注册表信息。我之前安装的是64位版本。


2
这个问题通常是因为我们使用64位的jre和32位的ApacheDS导致的。我尝试了以下解决方案,并且它对我起到了作用。
  1. 安装jre-8u91-windows-i586.exe,它将被安装在C:\Program Files(x86)目录下。
  2. 从C:\Program Files(x86)\Java\jre1.8.0_91\bin复制msvcr100.dll和msvcr120.dll文件,然后粘贴到C:\Program Files(x86)\apacheds-1.5.0\bin中。
  3. 设置JAVA_HOME和PATH环境变量:

    JAVA_HOME - C:\Program Files(x86)\Java\jre1.8.0_91

    PATH - C:\Program Files(x86)\Java\jre1.8.0_91\bin。

  4. 进入ApacheDS中的Java选项卡,取消“使用默认值”复选框,并将JVM设置为C:\Program Files(x86)\Java\jre1.8.0_91\bin\client\jvm.dll。

  5. 启动服务。

1
在我的情况下,我使用OpenJDK和tomcat9,看到类似的错误信息, 所以我将tomcat9w的属性更改为以“本地系统帐户”启动,这也解决了“无法创建....访问被拒绝”的jvm.dll问题。

1
我在尝试将Apache TC作为服务启动时遇到了问题。通过运行TomCatW.exe //MS//来解决它,然后通过从系统托盘禁用Java VM默认设置并将其指向我的JRE\Server文件夹来配置它,以适应64位安装。

0
检查Tomcat配置中的路径,可能在您的服务器上出错。

0
在Tomcat安装文件夹中找到Tomcat8w.exe并双击打开。 在对话框中更改Java虚拟机路径。
通常情况下,当您从JRE文件夹指定JVM路径并且Java正在自动更新补丁时,会出现这种情况。

0

需要设置Java虚拟机的路径。 一种方法 是运行Tomcat首选项应用程序(tomcatw.exe)。并设置Java虚拟机。

enter image description here

第二种方法是编辑配置文件: C:\Program Files (x86)\Apache Software Foundation\Tomcat 8.5\bin\service.bat

rem 尝试使用服务器JVM set "JVM=%JRE_HOME%\bin\server\jvm.dll"


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 工作正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接