Apache commons守护程序“失败创建Java”错误

时间:2010-12-13 22:44:28

标签: daemon apache-commons procrun

我正在尝试使用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位系统设计的。

8 个答案:

答案 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二进制文件,您可以看到文件夹层次结构如下;

  • 列表项
  • AMD64
  • IA64
  • prunsrv.exe
  • prunmgr.exe

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

答案 2 :(得分:3)

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

答案 3 :(得分: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. 启动服务。

答案 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正常运行。