Apache ActiveMq 5.11.1 未在 Ubuntu 内启动

Apache ActiveMq 5.11.1 doesn't start in Ubuntu

我是 Apache Active MQ 的新手。我正在按照 here

的说明进行操作

我不需要 Active MQ 的多个实例,只需尝试使用 ActiveMQ 的 HelloWorld。但是我开始我得到以下错误

vinod@BBLPT0326:/srv/activemq/current$ /etc/init.d/activemq start

INFO: Loading '/etc/default/activemq' INFO: Using java '/opt/software/java/bin/java' INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details /etc/init.d/activemq: 300: /etc/init.d/activemq: "/opt/software/java/bin/java" -Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/srv/activemq/apache-activemq-5.11.1/conf/login.config -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Djava.io.tmpdir="/srv/activemq/apache-activemq-5.11.1/tmp" -Dactivemq.classpath="/srv/activemq/apache-activemq-5.11.1/conf:" -Dactivemq.home="/srv/activemq/apache-activemq-5.11.1" -Dactivemq.base="/srv/activemq/apache-activemq-5.11.1" -Dactivemq.conf="/srv/activemq/apache-activemq-5.11.1/conf" -Dactivemq.data="/srv/activemq/apache-activemq-5.11.1/data" -jar "/srv/activemq/apache-activemq-5.11.1/bin/activemq.jar" start >/dev/null 2>&1 & RET="$?"; APID="$!"; echo $APID > /srv/activemq/apache-activemq-5.11.1/data/activemq.pid; echo "INFO: pidfile created : '/srv/activemq/apache-activemq-5.11.1/data/activemq.pid' (pid '$APID')";exit $RET: not found

尝试使用 SUDO 时,出现如下不同的错误

vinod@BBLPT0326:/srv/activemq/current$ sudo /etc/init.d/activemq start

INFO: Loading '/etc/default/activemq' ERROR: Configuration variable JAVA_HOME or JAVACMD is not defined correctly. (JAVA_HOME='', JAVACMD='java')

我的JAVA_HOME已定义。我验证如下。

vinod@BBLPT0326:/srv/activemq/current$ echo $JAVA_HOME

/opt/software/java

我已经参考了解决方案 here 因为我正在使用 Ubuntu 14.0.4.

但我不是很清楚,因为我没有路径 /etc/activemq/instances-enabled 我应该从哪里执行命令 sudo ln - s ../instances-available/main/

我在这里回答我自己的问题。

在ubuntu 14.0.4 问题的根本原因是

信息:加载“/etc/default/activemq”错误:配置变量 JAVA_HOME 或 JAVACMD 未正确定义。 (JAVA_HOME='', JAVACMD='java')

即使您在 /etc/environment 中定义 JAVA_HOME,活动 MQ 也只会从以下任一位置读取,只要先找到文件。

  1. /etc/default/activemq
  2. $HOME/.activemqrc
  3. $INSTALLDIR/apache-activemq-/bin/env

所以我建议在/etc/default/activemq中定义JAVA_HOME(从$INSTALLDIR/apache-activemq-/bin/env复制)

我做了如下操作

JAVA_HOME="/opt/software/java/jre" JAVACMD="/opt/software/java/jre/bin/java"

如果您只需要 jre 而不是整个 jdk 那么重新安装 jre 对我有用:

sudo apt-get install openjdk-7-jre-headless