14

我正在尝试使用 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] [信息] 启动服务... [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 位系统设计的。

4

10 回答 10

18

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

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

  • 单击 Java 选项卡

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

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

于 2013-04-23T08:54:09.923 回答
8

您可以下载 commons-deamon-1.0.15-bin-windows 二进制文件,您可以看到文件夹层次结构如下;

  • 项目清单
  • amd64
  • ia64
  • prunsrv.exe
  • 剪枝程序

在我的 64 位机器上,我遇到了与 prunsrv.exe 相同的问题。经过一番研究(apache的网站),解决方案是在64位机器的amd64下使用正确版本的prunsrv.exe。使用 amd64/prunsrv.exe 对我有用。

于 2015-11-24T08:34:43.637 回答
3

修复了问题。必须安装 32 位版本的 JRE,因为它会查找该注册表信息。我有 64 位版本。

于 2010-12-14T16:38:00.403 回答
2

这个问题通常发生在我们使用 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

    路径 - 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. 启动服务。
于 2016-06-07T16:25:14.473 回答
1

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

于 2018-09-16T23:55:38.153 回答
1

在我的情况下,我将 OpenJDK 与 tomcat9 一起使用并看到了类似的错误消息,因此我将 tomcat9w 的属性更改为以“本地系统帐户”启动,这也修复了 jvm.dll 的“无法创建 .... 访问权限”问题拒绝”对我来说。

于 2020-01-21T11:40:01.633 回答
0

检查tomcat配置中的路径。它可能在您的服务器中出错

于 2020-05-02T10:47:08.503 回答
0

Locate Tomcat8w.exe in tomcat installation folder and double click on it. change Java virtual machine path in that dialogue box.

this generally happens when you specified JVM path from JRE folder and java is being updated by patches automatically.

于 2021-11-22T06:25:36.027 回答
0

需要设置 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"

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

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

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

于 2020-10-06T07:21:58.893 回答