来自存储库和 Debian Wheezy 的 Tomcat 7。
如果我尝试通过服务启动 Tomcat,它不起作用
service tomcat7 start
[FAIL] no JDK found - please set JAVA_HOME ... failed!
但变量是存在的
/var/lib/tomcat7/conf# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
如果我从 init.d 尝试,它确实有效
/etc/init.d/tomcat7 start
[ ok ] Starting Tomcat servlet engine: tomcat7.
查看 /etc/inittab
# The default runlevel.
id:2:initdefault:
默认值似乎是 2
因此,查看 /etc/rc2.d
lrwxrwxrwx 1 root root 17 Nov 18 22:50 S01tomcat7 -> ../init.d/tomcat7
看来它总是指向相同的 /etc/init.d/tomcat7 并且我不明白为什么它会失败(抱怨 java)..
答案1
直接运行 init 脚本时,将使用 shell 的环境。运行服务命令时则不会。您应该在/etc/默认/tomcat7。
答案2
您需要创建一个名为 JAVA_HOME 的环境变量,其值为 Java 安装的目录路径。
如果您正在进行部署,请使用 jre 路径,如果您需要访问开发工具,请使用 jdk 路径。