在Ubuntu中,我设置了jdk环境(JAVA_HOME,JRE_HOME),而java -version可以使用。 但我可以启动tomcat。一些信息:
环境设置 / etc / profile
JAVA_HOME=/opt/jvm/java/jdk1.7.0_25
JRE_HOME=/opt/jvm/java/jdk1.7.0_25/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME
export JAVA_HOME
export JRE_HOME
export PATH
日志
sunshanming@sunshanming-vm1:~$ sudo /opt/apache-tomcat-7.0.42/bin/startup.sh
[sudo] password for sunshanming:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
sunshanming@sunshanming-vm1:~$ echo $JAVA_HOME
/opt/jvm/java/jdk1.7.0_25
sunshanming@sunshanming-vm1:~$ echo $JRE_HOME
/opt/jvm/java/jdk1.7.0_25/jre
sunshanming@sunshanming-vm1:~$ java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
答案 0 :(得分:7)
尝试在tomcats setenv.sh
文件夹中的bin
中设置变量。那就是你为tomcat指定环境的地方。
只需在 tomcat / bin / setenv.sh
中创建此文件即可#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
export CATALINA_OUT=/var/log/tomcat/catalina.out
export CATALINA_PID=/var/log/tomcat/catalina.pid
您还可以指定其他环境。 vars适合你申请。
注意:默认情况下,它们不会创建此文件。否则它将在更新时被覆盖。
因您的评论而更新:
问题是,如果您使用/etc/profile
,则未加载sudo
。
你可以这样测试:
# Write a variable SMALLTEST into the profile file
sudo su -c "echo \"export SMALLTEST=Hello World\" >> /etc/profile"
# create a small script (like your startup.sh) that read the variable
echo "echo Variable is set to: \$SMALLTEST" > smalletst
chmod +x smalletst
# Execute the script with sudo
sudo ./smalletst
Variable is set to:
你看到了env。 var未设置。
更新2:
如果您想让tomcat作为服务运行,您应该查看/opt/tomcat/bin/daemon.sh
脚本。你可以把ti /etc/init.d/tomcat
并指定你的环境。在setenv.sh。
答案 1 :(得分:1)
使用Ubuntu,如果使用Ubuntu repo附带的软件包,则无需修改任何运行tomcat的内容。
只需输入sudo apt-get install tomcat7
即可。这将安装tomcat7
所有必需的依赖项。
如果您不需要,我建议不要手动安装任何(没有包系统)。
答案 2 :(得分:0)
实际上这很简单。
在startup.sh和shutdown.sh中,只提供JAVA_HOME系统变量值 -
导出JAVA_HOME =" /home/mxdev/java_stack/jdk1.8.0_77"