我安装了tomcat,设置了变量CATALINA_HOME=/opt/tomcat and CATALINA_BASE=/opt/tomcat
。在终端我输入了java并获得响应/usr/bin/java
的命令。所以我理解这是JAVA_HOME的路径。我设定了它。当我使用$CATALINA_HOME/bin/startup.sh
在终端中启动tomcat时,我得到了回复:
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/bin/java
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
但是当我检查时,我发现tomcat没有启动,在日志中我发现:
/opt/tomcat/bin/catalina.sh: 1: eval: /usr/bin/java/bin/java: not found
我想,java的路径有问题。我该如何解决? PS everyhing在Ubuntu OS中执行
答案 0 :(得分:4)
我认为您应该将JRE_HOME指向安装java的目录,而不是可执行文件java
本身。一个例子是
/usr/lib/jvm/java-7-oracle
该文件夹中包含bin/java
可执行文件...
答案 1 :(得分:2)
您还可以编辑文件../bin/setclasspath.sh
并输入一个条目
JAVA_HOME="##path of the java directory##"
这将确保无论何时尝试启动tomcat,都会强制执行JAVA_HOME
。
答案 2 :(得分:2)
tomcat启动时,它正在Catalina的家中或基地中搜索setenv.sh。
从Catalina.sh引用:
# Do not set the variables in this script. Instead put them into a script
# setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
#
# JAVA_HOME Must point at your Java Development Kit installation.
# Required to run the with the "debug" argument.
# Ensure that any user defined CLASSPATH variables are not used on startup,
# but allow them to be specified in setenv.sh, in rare case when it is needed.
CLASSPATH=
if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
. "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
. "$CATALINA_HOME/bin/setenv.sh"
fi
所以在tomcat中设置JAVA_HOME的最好方法是通过setenv.sh
启动startup.sh脚本,它将启动tomcat。
答案 3 :(得分:1)
对于C shell(csh),编辑启动文件(〜/ .cshrc):
set path=(/usr/local/jdk1.7.0/bin $path)
对于bash,编辑启动文件(〜/ .bashrc):
PATH=/usr/local/jdk1.7.0/bin:$PATH
导出路径
对于ksh,启动文件由环境变量ENV命名。设置路径:
PATH=/usr/local/jdk1.7.0/bin:$PATH
导出路径 对于sh,编辑配置文件(〜/ .profile):
PATH=/usr/local/jdk1.7.0/bin:$PATH
导出路径 然后加载启动文件并通过重复java命令验证路径是否已设置:
对于C shell(csh):
% source ~/.cshrc<br>
% java -version
对于ksh,bash或sh:
% . /.profile<br>
% java -version
答案 4 :(得分:0)
尝试在/ etc / default / tomcat7中设置 JAVA_HOME 属性:
JAVA_HOME=/usr/bin/java
这将强制Tomcat使用位于/ usr / bin / java
下的JVM答案 5 :(得分:0)
在Ubuntu中
在 .bashrc 中将JAVA_HOME设置为导出 JAVA_HOME = / usr / lib / jvm / java-8-oracle / 并运行。 .bashrc ,然后启动tomcat服务器
答案 6 :(得分:0)
这个解决了我的问题: https://ubuntuforums.org/showthread.php?t=1018063
PS:我通过 apt-get 安装了tomcat8,而不是下载压缩的tomcat文件。