我应该如何修复java-path,以便运行tomcat?

时间:2016-06-09 08:27:13

标签: java ubuntu tomcat

我安装了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中执行

7 个答案:

答案 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

  1. 在$ CATALINA_HOME文件夹中创建文件setenv.sh
  2. 向其添加以下行:“ export JAVA_HOME = / usr /”
  3. 使其可执行:“ chmod 750 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文件。