1

尝试了一切,但它不起作用,我在 EC2 实例(亚马逊 AWS)上运行 tomcat7。我可以通过启动startup.sh手动启动tomcat7,但不能在启动时自动启动。我在 logs/catalina.out 中收到的错误消息如下:

/etc/apache-tomcat-7.0.32/bin/catalina.sh: 1: eval: /etc/jdk1.7.0_07/bin/java: not found

我的环境变量也设置正确:

echo $JAVA_HOME -> /etc/jdk1.7.0_07/bin/java
echo $PATH -> /usr/local/sbin:/usr/local/bin:/usr/sbin/:/usr/bin:/sbin:/bin:/usr/games:/etc/jdk1.7.0_07/bin

我也可以在 shell 中键入“java -version”以获得正确的输出,但是“/etc/jdk1.7.0_07/bin/java -version”不起作用,只会返回“ No such file or directory ”。

我真的不知道现在该怎么办,感觉我什么都试过了,希望有人能帮助我!该实例也正在运行Ubuntu server 12.04

4

4 回答 4

1

我并不特别了解 EC2 上的 ubuntu+tomcat7 的细节。所以我的回答可能有点漏掉了。它是从通用 ubuntu 的角度给出的。

如果您在 ubuntu 上使用 apt-get 管理 tomcat 和 java,可能会更容易管理。在这种情况下,tomcat 将在启动时自动启动。以下命令在 ubuntu 12.10 上进行了测试,但也适用于一些早期版本。

要安装 Java,您需要以下内容:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

如果第一个命令失败,请使用以下命令:

sudo apt-get install software-properties-common

然后使用以下命令安装tomcat7:

sudo apt-get install tomcat7

之后,您需要告诉 tomcat 使用已安装的 java 7。为此,可以手动修改 /etc/default/tomcat7 文件,也可以使用如下命令:

cat /etc/default/tomcat7 | sed 's/#JAVA_HOME=\/usr\/lib\/jvm\/openjdk-6-jdk/JAVA_HOME=\/usr\/lib\/jvm\/java-7-oracle/' >/tmp/tomcat7-updated
sudo cp /tmp/tomcat7-updated /etc/default/tomcat7

之后,tomcat 应该在启动时加载。您只需要调整端口和其他配置信息。请注意,这个 tomcat 使用 /var/lib/tomcat7/webapps/ 来存储 Web 应用程序。您还可以使用以下命令手动启动或停止 tomcat:

sudo /etc/init.d/tomcat7 start
于 2012-12-29T16:10:18.287 回答
1

执行sudo su vi /etc/bash.bashrc并复制以下内容

JAVA_HOME=/etc/jdk1.7.0_07 //you have to only specify path until java dir not bin
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
于 2012-10-22T19:38:49.920 回答
0

对于tomcat的自动启动,它应该只在启动时启动。

为此,您需要编写一个启动 tomcat 的脚本并将此文件放在 etc/init.d 中,或者您可以将其用于不同的运行级别。

于 2012-10-25T08:49:10.247 回答
0

对我的提示是修改 shell 脚本文件(设置 JAVA_HOME 变量),这解决了问题。

tomcat脚本文件一般在/etc/init.d/目录下

于 2016-07-13T09:32:03.243 回答