6

我正在尝试使用 debug 命令在 Ubuntu Linux 上运行 Catalina。我收到以下错误:

JAVA_HOME should point to a JDK in order to run in debug mode.
/bin/sh died with exit status 1

但是,我尝试将 JAVA_HOME 设置.bashrc为以下所有内容:

export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/bin"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/bin/"

我错过了什么吗?

4

2 回答 2

5

在 Debian/Ubuntu 中运行:

$ sudo update-alternatives --config java
Path                                          
---------------------------------------------
/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

找出与您的java命令链接的可执行文件。

注意:update-alternatives--config选项一起使用时,预期目标是手动设置与命令链接的可执行文件(例如,请参见此处)。出于我们的目的,我们可以使用--queryoption 代替。

JDK路径是这些路径中的前缀,即之前的jre. 例如,根据上面的输出,您可以JAVA_HOME.bashrc文件中设置:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

因此,您可以export在运行命令之前使用此路径或前缀,例如:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 catalina.sh debug
于 2015-04-09T20:23:48.067 回答
0

方法 1添加到 bashrc 将起作用。

方法2但我认为更好的方法是将它添加到catalina.sh

JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/bin

方法 3 甚至更简洁的方法是创建一个 env_var.sh(假设您在与 catalina.h 相同的文件夹中创建了 env_var.sh)文件,然后像这样在 catalina.sh 中使用 env_var.sh 文件

source ./env_var.sh

现在,您可以在这个新文件中放入您自己的环境特定设置,并让 catalina.sh 保持平静。优点是您不会弄乱 catalina.sh 并且您不依赖于一个特定的用户 bash 配置文件。

env_var.sh 的简单示例

#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -server"
JAVA_OPTS="$JAVA_OPTS -Xms2096m"
JAVA_OPTS="$JAVA_OPTS -Xmx4096m"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=512m"

echo Using JAVA_OPTS settings $JAVA_OPTS

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote"
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=[some_port]"

echo Using CATALINA_OPTS settings $CATALINA_OPTS
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386

我希望它有帮助:)

于 2014-05-12T22:13:23.277 回答