【问题标题】:How do I install ActiveMQ as a 64-bit Service on windows?如何在 Windows 上将 ActiveMQ 安装为 64 位服务?
【发布时间】:2011-06-05 08:06:50
【问题描述】:

如何解决以下错误? 有没有办法可以复制 64 位包装器?

FATAL  | wrapper  | 2011/01/07 08:53:48 | OpenSCManager failed - Access is denied. (0x5)
STATUS | wrapper  | 2011/01/07 08:54:13 | ActiveMQ installed.
STATUS | wrapper  | 2011/01/07 08:54:25 | --> Wrapper Started as Service
STATUS | wrapper  | 2011/01/07 08:54:26 | Launching a JVM...
INFO   | jvm 1    | 2011/01/07 08:54:26 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2011/01/07 08:54:26 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2011/01/07 08:54:26 | 
INFO   | jvm 1    | 2011/01/07 08:54:26 | 
INFO   | jvm 1    | 2011/01/07 08:54:26 | WARNING - Unable to load the Wrapper's native library 'wrapper.dll'.
INFO   | jvm 1    | 2011/01/07 08:54:26 |           The file is located on the path at the following location but
INFO   | jvm 1    | 2011/01/07 08:54:26 |           could not be loaded:
INFO   | jvm 1    | 2011/01/07 08:54:26 |             C:\stuff\apache-activemq-5.4.2\bin\win32\..\..\bin\win32\wrapper.dll
INFO   | jvm 1    | 2011/01/07 08:54:26 |           Please verify that the file is readable by the current user
INFO   | jvm 1    | 2011/01/07 08:54:26 |           and that the file has not been corrupted in any way.
INFO   | jvm 1    | 2011/01/07 08:54:26 |           One common cause of this problem is running a 32-bit version
INFO   | jvm 1    | 2011/01/07 08:54:26 |           of the Wrapper with a 64-bit version of Java, or vica versa.
INFO   | jvm 1    | 2011/01/07 08:54:26 |           This is a 64-bit JVM.
INFO   | jvm 1    | 2011/01/07 08:54:26 |           Reported cause:
INFO   | jvm 1    | 2011/01/07 08:54:26 |             C:\stuff\apache-activemq-5.4.2\bin\win32\wrapper.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
INFO   | jvm 1    | 2011/01/07 08:54:26 |           System signals will not be handled correctly.
INFO   | jvm 1    | 2011/01/07 08:54:26 | 

【问题讨论】:

    标签: java windows activemq


    【解决方案1】:

    您可以使用 Procrun,因为 64 位的 wrapper.dll 不是免费的。

    http://blog.bigrocksoftware.com/2010/10/07/commons-daemon-procrun-as-a-java-service-wrapper-for-activemq/

    已经在我们的产品中尝试了文章的设置。效果很好!

    【讨论】:

      【解决方案2】:

      我成功地将 ActiveMQ 安装为 Windows 7 上的一项服务,而无需下载其他任何东西。您只需要修改一些配置设置。

      如果你进入以下文件夹:C:\apache-activemq-5.5.0\bin\win32

      在本地文本编辑器中打开“InstallService.bat”文件。

      修改脚本的底部,如下所示。请注意,您的 JAVA_HOME 环境变量需要已经设置,并且您需要将其作为变量传递给包装器。

      :conf
      set _WRAPPER_CONF="%ACTIVEMQ_HOME%\bin\win32\wrapper.conf"
      
      set _ACTIVEMQ_HOME="set.ACTIVEMQ_HOME=%ACTIVEMQ_HOME%"
      set _ACTIVEMQ_BASE="set.ACTIVEMQ_BASE=%ACTIVEMQ_BASE%"
      set _JAVA_HOME="set.JAVA_HOME=%JAVA_HOME%"
      
      rem
      rem Install the Wrapper as an NT service.
      rem
      :startup
      "%ACTIVEMQ_HOME%\bin\win32\wrapper.exe" -i %_WRAPPER_CONF% %_ACTIVEMQ_HOME% %_ACTIVEMQ_BASE% %_JAVA_HOME%
      if not errorlevel 1 goto :eof
      pause
      

      然后在本地文本编辑器中打开“C:\apache-activemq-5.5.0\bin\win32\wrapper.conf”

      然后改变这个:

      # Java Application
      wrapper.java.command=java
      

      到这里:

      # Java Application
      wrapper.java.command=%JAVA_HOME%\bin\java.exe
      

      完成后,您应该能够成功运行 InstallService.bat。

      此外,如果您也希望能够使用 UninstallService.bat 文件,请将其打开并硬编码包装器的路径:

      rem
      rem Uninstall the Wrapper as an NT service.
      rem
      :startup
      "%ACTIVEMQ_HOME%\bin\win32\wrapper.exe" -r %_WRAPPER_CONF%
      if not errorlevel 1 goto :eof
      pause
      

      ActiveMQ 5.6.0 说明 我刚刚安装了最新的 5.6.0 版本的 ActiveMQ,它实际上在这个版本中包含一个 64 位包装器。如果您尝试单击 InstallService.bat 文件,不幸的是它仍然会失败,给您这样的错误: 。

      如果您以管理员身份打开 Windows 命令提示符并从命令行运行 InstallService.bat 文件,它将起作用。否则,如果您绝对坚持能够单击 bat 文件,则如果您按上述方式修改 bat 文件,它将起作用,但请记住在此行中使用 win64 而不是 win32:

      "%ACTIVEMQ_HOME%\bin\win64\wrapper.exe"
      

      【讨论】:

      • 抱有一段时间的希望,但最终对我没有用。
      • 这个 def 在 Windows 7 上工作,我现在已经在大约 10 台不同的机器上安装了它,它似乎在所有机器上都能正常工作。我会再看看我的 bat 文件并制作确定我没有错过任何东西
      • 这不适用于 64 位 Windows 7。我在带有 ActiveMQ 5.4.3 和 5.5.1 的 Windows 7 x64 企业版上尝试过这个。您将需要一个 64 位包装器,目前社区版中不提供该包装器。
      • 这适用于我的 5.5.1 但是:您必须使用 JVM 的 32 位版本。 (我系统上的 C:\Program Files (x86)\Java\jre6\bin\java.exe)
      • 仅供参考,在x64下直接执行InstallService即可安装5.13.2。
      【解决方案3】:

      我来到这里是因为我遇到了 ActiveMQ 5.5.1 的问题,但在启动服务时出现了不同的错误(类似于“无法创建 tmp 文件夹”)。

      解决方案非常简单。我在这里找到了它:https://issues.apache.org/jira/browse/AMQ-2946

      基本上,您只需要手动创建两个文件夹:

      {amq-home}/bin/win32/work 和 {amq-home}/bin/win32/temp

      希望这会有所帮助。

      【讨论】:

      • 这就是我的解决方案。虽然我不应该做这个 IMO。为什么 ActiveMQ 不为我创建它们?
      【解决方案4】:

      如果您尝试将 ActiveMQ 5.7.0 作为 Windows 服务安装和运行,他们忘记将 wrapper.jar 文件包含到发行版中。需要下载ActiveMQ 5.6.0版本,从该版本的BIN文件夹中取出wrapper.jar,复制到5.7.0对应的BIN文件夹中。然后它应该工作。别忘了需要以管理员身份运行服务安装脚本(右键BAT文件,以管理员身份运行)

      【讨论】:

      • 听起来这是将最新的 ActiveMQ 5.7.0 作为服务安装的主要问题:link
      【解决方案5】:

      使用 procrun 时(请参阅上面 LostInComputer 的回答),您可能需要在安装服务时添加以下 JVM 选项,以便 ${activemq.conf} 和 ${activemq.data} 变量能够正确解析服务启动:

      ++JvmOptions=-Dactivemq.conf=C:\Java\apache-activemq-5.7.0\conf ++JvmOptions=-Dactivemq.data=C:\Java\apache-activemq-5.7.0\data

      将 sn-p 中的绝对路径替换为您自己的安装路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-03
        • 2012-06-13
        • 2016-07-16
        • 1970-01-01
        • 2017-04-28
        • 2011-07-13
        • 2017-04-10
        • 2013-12-06
        相关资源
        最近更新 更多