Tomcat

Tomcat 7:“找不到 Java 首頁”

  • January 4, 2012

拱Linux。Servlet 顯然與 openjdk 存在兼容性問題,因此我將其解除安裝並從 AUR 安裝了普通的 jdk/jre。

# /etc/rc.d/tomcat7 restart
:: Stopping tomcat7 daemon [FAIL] 
:: Starting tomcat7 daemon [BUSY]
Cannot locate Java Home

添加export TOMCAT_JAVA_HOME=/opt/java/etc/profile.d/jdk.sh(和下的等效項jdk.csh),重新啟動。echo $JAVA_HOME並且echo $TOMCAT_JAVA_HOME都返回/opt/java,但仍然沒有骰子。為什麼?

我在這個頁面之後解決了這個問題:https ://bugs.archlinux.org/task/24126

基本上你必須在 /etc/rc.d/tomcat7 文件中添加這些行,在 “./etc/conf.d/${daemon_name}” 行下方

# The JAVA_HOME of the JVM for Tomcat to use

if [ -x /usr/lib/jvm/java-6-openjdk ]; then
TOMCAT_JAVA_HOME=/usr/lib/jvm/java-6-openjdk
elif [ -x /opt/java/ ]; then
TOMCAT_JAVA_HOME=/opt/java/
fi

# Tomcat additional commandline options
CATALINA_OPTS=

希望這可以幫助。

你需要嘗試做:

sudo env

不允許 root 以“我們”的方式查看環境。

Sudoers手冊有這樣的說法……

由於環境變數可以影響程序行為,sudoers 提供了一種方法來限制使用者環境中的哪些變數被要執行的命令繼承。

… 和 …

預設情況下,啟用 env_reset 選項。這會導致在包含 TERM、PATH、HOME、MAIL、SHELL、LOGNAME、USER、USERNAME 和 SUDO_ 變數以及 env_check 和 env_keep 選項允許的呼叫過程中的變數的最小環境中執行命令。

我的解決方案是:

# Create a sudoers extension file and authorize passing JAVA_HOME, M2_HOME, etc into new environment
cd ~/
rm -f neededBy*
echo 'Defaults env_keep+="JAVA_HOME M2_HOME CATALINA_HOME TOMCAT_USER"' > neededByTomCat
chmod 0440 neededByTomCat
sudo cp neededByTomCat /etc/sudoers.d/

我希望這有幫助,

哈桑

引用自:https://serverfault.com/questions/344510