【问题标题】:Apache commons daemon "Failed creating Java" errorApache commons 守护进程“创建 Java 失败”错误
【发布时间】:2011-05-24 23:15:15
【问题描述】:

我正在尝试使用 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] [信息] 运行“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 位系统设计的。

【问题讨论】:

    标签: daemon apache-commons procrun


    【解决方案1】:

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

    • 在 Windows 中右键单击系统托盘中的应用程序并选择配置

    • 单击 Java 选项卡

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

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

    【讨论】:

    • 系统托盘是什么?
    • 这是解决方案,@anom217,您应该接受它作为答案。
    【解决方案2】:

    可以下载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 位版本。

      【讨论】:

        【解决方案4】:

        这个问题通常发生在我们使用 64 位 jre 和 32 位 ApacheDS 时。 我尝试了以下解决方案,它对我有用。

        1. 安装 jre-8u91-windows-i586.exe。它将安装在 C:\Program Files (x86) 上。
        2. 将 msvcr100.dll 和 msvcr120.dll 文件从 C:\Program Files (x86)\Java\jre1.8.0_91\bin 复制到 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. 启动服务。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            在我的例子中,我使用 OpenJDK 和 tomcat9 并看到了类似的错误消息, 所以我将 tomcat9w 的属性更改为以“本地系统帐户”开头,这也为我解决了“无法创建 .... 访问被拒绝”的 jvm.dll 问题。

            【讨论】:

              【解决方案7】:

              检查tomcat配置中的路径。可能是你的服务器有问题

              【讨论】:

                【解决方案8】:

                我在 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 上使用了依赖walker。原来 vcruntime140.dll 在我的机器上丢失了。所以我从 MS 站点安装了 MS VC 运行时 2015。

                请注意,Java 11 不再有单独的 JRE。如果您从 .zip 文件而不是安装程序安装,这就是您得到的结果:缺少依赖项。

                安装缺少的 VC 运行时后,Tomcat 9 可以正常工作。

                【讨论】:

                  【解决方案9】:

                  在 tomcat 安装文件夹中找到 Tomcat8w.exe 并双击它。 在该对话框中更改 Java 虚拟机路径。

                  这通常发生在您从 JRE 文件夹中指定 JVM 路径并且 java 正在被补丁自动更新时。

                  【讨论】:

                    【解决方案10】:

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

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

                    rem Try to use the server jvm set "JVM=%JRE_HOME%\bin\server\jvm.dll"

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2019-04-30
                      • 2020-01-11
                      • 1970-01-01
                      • 1970-01-01
                      • 2023-01-27
                      • 2016-12-07
                      • 2014-12-25
                      相关资源
                      最近更新 更多