Java tomcat7不会在启动时运行

Java tomcat7不会在启动时运行,java,tomcat,ubuntu,amazon-ec2,amazon-web-services,Java,Tomcat,Ubuntu,Amazon Ec2,Amazon Web Services,尝试了所有的方法,但都不起作用,我在EC2实例(AmazonAWS)上运行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 sudo add-apt-repository ppa:webupd8team/jav

尝试了所有的方法,但都不起作用,我在EC2实例(AmazonAWS)上运行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
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
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
sudo /etc/init.d/tomcat7 start
我的环境变量也已正确设置:

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”不起作用,只返回“没有这样的文件或目录”

我真的不知道现在该怎么办,感觉好像我什么都试过了,希望有人能帮我!
同时,该实例正在运行Ubuntu服务器12.04,并复制以下内容

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

对于tomcat的自动启动,它应该只在引导期间启动


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

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

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

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

/etc/apache-tomcat-7.0.32/bin/catalina.sh: 1: eval: /etc/jdk1.7.0_07/bin/java: not found
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
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
sudo /etc/init.d/tomcat7 start
如果第一个命令失败,请使用以下命令:

/etc/apache-tomcat-7.0.32/bin/catalina.sh: 1: eval: /etc/jdk1.7.0_07/bin/java: not found
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
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
sudo /etc/init.d/tomcat7 start
然后使用以下命令安装tomcat7:

sudo apt-get install tomcat7
之后,您需要告诉tomcat使用已安装的Java7。为此,手动或使用如下命令修改/etc/default/tomcat7文件:

/etc/apache-tomcat-7.0.32/bin/catalina.sh: 1: eval: /etc/jdk1.7.0_07/bin/java: not found
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
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
sudo /etc/init.d/tomcat7 start
之后,tomcat应在启动时加载。您只需要调整端口和其他配置信息。注意,这个tomcat使用/var/lib/tomcat7/webapps/来存储web应用程序。您还可以使用以下命令手动启动或停止tomcat:

/etc/apache-tomcat-7.0.32/bin/catalina.sh: 1: eval: /etc/jdk1.7.0_07/bin/java: not found
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
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
sudo /etc/init.d/tomcat7 start

给我的提示是修改shell脚本文件(set JAVA_HOME变量),这解决了这个问题


tomcat脚本文件通常位于/etc/init.d/目录下

在您的
/etc/bash.bashrc
中设置JAVA\u HOME,并且您的JAVA HOME应该是
$JAVA\u HOME->/etc/jdk1.7.0\u 07
直到您的shell中的binTry
哪个JAVA
来查看它使用的是哪个
JAVA
二进制文件。用于启动Tomcat的脚本也可能使用了与
/etc/jdk..
不同的java。请尝试使用,它将自动完成所有这些设置工作,但将得到相同的错误,但是“哪个java”返回“/usr/bin/java”,如果我更改此错误,如果是这样,我该怎么做?@Marcus你的机器上还有另一个java,你是否正确保存了该文件。重新启动后也尝试一下。我确实重新启动了,现在tomcat7的手动启动都不起作用了,我在手动运行startup.sh时出现以下错误:“./catalina.sh 1:eval:/etc/jdk1.7.0_07/bin/java:not found”(在catalina.out日志文件中)@Marcus,这意味着您的机器上没有这样的jdk。您可以尝试
locate jdk
查找jdk的位置谢谢,通过“locate jdk”,我找到了我不知道存在的机器上预安装的jdk。我将JAVA_HOME改为“/usr/lib/jvm/JAVA-7-openjdk-amd64”,现在它可以工作了!