尝试了一切,但它不会工作,我在EC2实例上运行tomcat7(amazon AWS)。我可以通过启动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”不起作用,只返回“没有这样的文件或目录< / EM>”。
我真的不确定现在该做什么,感觉就像我尝试了一切,希望有人能帮助我! 该实例还运行 Ubuntu服务器12.04 。
答案 0 :(得分: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
答案 1 :(得分:1)
我对EC2上的ubuntu + tomcat7的具体细节并不特别了解。所以我的回答可能会遗漏一点。它是从通用ubuntu的角度给出的。
如果你使用apt-get在ubuntu上管理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
然后使用:
安装tomcat7sudo 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
答案 2 :(得分:0)
对于tomcat的自动启动,它应该仅在启动时启动。
为此你需要编写一个脚本来启动tomcat并将此文件放在etc / init.d中,或者你可以将它放在不同的运行级别上。
答案 3 :(得分:0)
我的提示是修改shell脚本文件(设置JAVA_HOME变量),这解决了这个问题。
tomcat脚本文件通常位于 /etc/init.d/ 目录
下