2

我在我的 PC 上安装了 JBoss 4 到目录 C:\JBoss4
并将环境变量 JBOSS_HOME 设置为这个目录:

JBOSS_HOME=C:\JBoss4  

我需要在同一台 PC 上安装 JBoss 5.1。
我将它安装到 C:\JBoss51
为了在已经启动 JBoss 4 的同一主机上启动 JBoss 5.1,我需要重新定义属性jboss.home.dir、jboss.home.url、jboss.service.binding.set

C:\JBoss51\bin\run.sh -Djboss.home.dir=C:/JBoss51 \
                      -Djboss.home.url=file:/C:/JBoss51 \
                      -Djboss.service.binding.set=ports-01

但在C:\JBoss51\bin\run.sh我可以看到以下代码:

…
if [ "x$JBOSS_HOME" = "x" ]; then
    # get the full path (without any relative bits)
    JBOSS_HOME=`cd $DIRNAME/..; pwd`
fi
export JBOSS_HOME
…
runjar="$JBOSS_HOME/bin/run.jar"
JBOSS_BOOT_CLASSPATH="$runjar"

而且此代码不依赖于jboss.home.dirjboss.home.dir
那么当我启动 JBoss 5.1 脚本时会使用来自 JBoss 4.3 的 jar 文件吗?
这是正确的吗?
我应该在启动 JBoss 5.1 时重新定义环境变量 JAVA_HOME 吗?
在这种情况下,脚本将使用正确的 jar 文件。
或者如果我重新定义了属性jboss.home.dir、jboss.home.url那么 JBoss 不会使用 run.sh 中设置的任何变量?

它是如何工作的?

4

3 回答 3

2

最简单的做法是根本不设置JBOSS_HOME环境变量。如果您run.bat在未设置变量的情况下调用,则脚本会将其设置为自己的 JBoss 目录。显式设置它允许您覆盖 JBoss 查找内容的位置,但是您必须自己管理它,并且您会陷入混乱。

所以删除这个变量,让 JBoss 处理它自己的目录。

于 2010-03-31T11:29:26.627 回答
1

在我的社区 7 版本中,我可以编辑 /bin/standalone.conf.bat 并在您的情况下设置如下变量:

set "JBOSS_HOME=C:\JBoss51"

在此之后:

if not "x%JAVA_OPTS%" == "x" (
  echo "JAVA_OPTS already set in environment; overriding default settings with values: %JAVA_OPTS%"
  goto JAVA_OPTS_SET
)

这使得从 conf 加载 JBOSS_HOME。而不是来自环境变量,希望这会有所帮助!

于 2015-04-06T18:12:55.447 回答
0

Wildfly 8 也有同样的问题。我有另一个使用 JBOSS_HOME 环境变量的 JBOSS 实例。我添加了上面指定的“set”JBOSS_HOME=..”,它起作用了。

于 2015-08-19T16:54:08.410 回答