首先按照安装指南中的步骤在虚拟机中安装,然后观察目录结构,其中唯一有用的就是 mq 目录,把它复制到自己机器的“ D:/Java ”目录中,改名“ OpenMQ ”。
启动 Java 命令行进入 bin 目录,运行“ imqbrokerd.exe -tty ”,提示“ Message Queue 4.3 Broker: Couldn't find IMQ_VARHOME 'D:/Java/OpenMQ/var': 2 The system cannot find the file specified. ”,在 OpenMQ 目录中建立“ var ”目录再运行,又提示“ Message Queue 4.3 Broker: Please specify a Java runtime using the IMQ_JAVAHOME environment variable, or -javahome command line option ”,运行命令“ set IMQ_JAVAHOME=%JAVA_HOME% ”,然后再次运行“ imqbrokerd.exe -tty ”,成功启动,观察 var 目录,其中增加了很多文件。
总结:
1. OpenMQ 依靠 IMQ_VARHOME 环境变量指定 var 目录,如果没有的话就直接定位到安装目录中的 var 目录;
2. OpenMQ 依靠 IMQ_JAVAHOME 指定 JDK ,或者通过命令行参数 -javahome 指定。
经过分析源代码,“ imqbrokerd ”事实上是调用的“ imqbrokersvc -console ”,而“ imqbrokersvc -console -verbose ”会显示出具体执行的 JVM 参数,例如:
"D:/Java/Jdk/jre/bin/java" "-server" "-cp" "D:/Java/OpenMQ/lib/imqbroker.jar;D:/Java/OpenMQ/lib/imqutil.jar;D:/Java/OpenMQ/lib/jsse.jar;D:/Java/OpenMQ/lib/jnet.jar;D:/Java/OpenMQ/lib/jcert.jar;D:/Java/OpenMQ/lib/../../share/lib/jdmkrt.jar;D:/Java/OpenMQ/lib/../../share/lib/mfwk_instrum_tk.jar;D:/Java/OpenMQ/lib/ext" "-Dimq.home=D:/Java/OpenMQ" "-Dimq.varhome=D:/Java/OpenMQ/var" "-Xms16m" "-Xmx192m" com.sun.messaging.jmq.jmsserver.Broker
这样就可以从命令行以 Java 方式直接启动 OpenMQ 了,也可以使用Java Service Wrapper封装成服务的方式。