如何更正应该指向JDK而不是JRE文件夹的JAVA_HOME?
我正在尝试使用debug命令在Ubuntu Linux上运行Catalina。我得到以下错误:如何更正应该指向JDK而不是JRE文件夹的JAVA_HOME?,java,debugging,jvm,java-home,catalina,Java,Debugging,Jvm,Java Home,Catalina,我正在尝试使用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 但是,我已尝试将.bashrc中的JAVA_HOME设置为以下所有选项: export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/" export JAVA_
JAVA_HOME should point to a JDK in order to run in debug mode.
/bin/sh died with exit status 1
但是,我已尝试将.bashrc
中的JAVA_HOME设置为以下所有选项:
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/"
我遗漏了什么吗?方法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配置文件
环境变量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
我希望它有帮助:)在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
命令链接的可执行文件
注意:当使用更新备选方案
和--config
选项时,预期目标是手动设置与命令链接的可执行文件(例如,请参阅)。出于我们的目的,我们可以使用--query
选项
路径是这些路径中的前缀,即jre
之前的路径。例如,根据上述输出,您可以在.bashrc
文件中设置JAVA\u HOME
:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
因此,您可以在运行命令之前导出此路径或前缀,例如:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 catalina.sh debug
更改设置后是否重新启动bash?更改设置后,请尝试
echo$JAVA\u HOME
并查看它提供了什么。为了重新加载设置,您可以尝试source./.bashrc
此外,您可能希望将导出行添加到catalina.sh文件中,以及脚本是否作为当前用户或其他用户(root、tomcat等)运行?@Humdinger-是的,我已重新启动服务器并回显$JAVA_HOME。它的回声如所愿,但它仍然不喜欢它。我感谢你的评论!不幸的是,我无法控制catalina.sh或该文件夹中的任何内容。它都建立在目标目录中,当我对项目进行清理时会丢失…@MrA不知道你说的丢失是什么意思。你是说你的tomcat配置丢失了?我是说,包含catalina.sh的文件夹被删除并重建。它在目标目录中。所以,如果我把东西放进去,它就会消失……目标只是从一个源复制过来的。因此,您需要在源所在的任何位置进行更改。通常在tomcat环境中folder@Humdinger-您会猜它位于项目中的某个位置还是服务器文件空间中的某个位置?