4

在 Ubuntu 中,我设置了 jdk 环境(JAVA_HOME,JRE_HOME),并且 java -version 可以使用。但我可以启动tomcat。一些信息:

  • JAVA_HOME 和 JRE_HOME 环境变量均未定义
  • 至少需要其中一个环境变量才能运行此程序

环境设置/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)
4

3 回答 3

7

尝试setenv.sh在 tomcatsbin文件夹中设置变量。那就是您为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:

你会看到环境。未设置 var。

更新 2:

如果你想让你的 tomcat 作为服务运行,你应该看看这个/opt/tomcat/bin/daemon.sh脚本。这你可以放 ti/etc/init.d/tomcat并指定你的环境。在 setenv.sh 中。

于 2013-09-08T16:42:31.087 回答
1

使用 Ubuntu,如果您使用 Ubuntu 存储库随附的软件包,则无需修改任何内容即可运行 tomcat。

只需键入sudo apt-get install tomcat7. 这将安装tomcat7所有需要的依赖项。

如果您不需要,我建议不要手动安装任何东西(没有软件包系统)。

于 2013-09-08T17:00:32.787 回答
0

这其实很简单。

在 startup.sh 和 shutdown.sh 中,只需提供 JAVA_HOME 系统变量值 -

导出 JAVA_HOME ="/home/mxdev/java_stack/jdk1.8.0_77"

于 2016-05-08T17:49:46.453 回答