JETTY_HOME 的環境變數不起作用

JETTY_HOME 的環境變數不起作用

我為碼頭添加了一個環境變量這個答案但我仍然收到JETTY_HOME not set錯誤:

root@b:/opt# echo $JETTY_HOME
/opt/jetty
root@b:/opt# service jetty start
** ERROR: JETTY_HOME not set, you need to set it or install in a standard location
root@b:/opt# 

這就是我的樣子/etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games":
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java":
JETTY_HOME=/opt/jetty

我究竟做錯了什麼?

答案1

這是一個相當令人沮喪的錯誤,幾乎沒有什麼幫助。我想我應該在這裡為那些想要解決相同問題的人發布我的解決方案。

無論如何,正確的解決方案是像這樣JETTY_HOME設定:/etc/default/jetty

JETTY_HOME=/opt/jetty

希望這對某人有幫助。

PS:這是基於 Java 7 的 Ubuntu 14.04 上的 jetty 9。

答案2

我不熟悉該服務,但一般來說,這些東西透過分叉來工作,即透過創建另一個外殼。發生這種情況時,新的 shell 不會繼承本地設定的 shell 變量,除了對於那些為此明確挑選出來的人。這是透過命令完成的export,因此您應該將命令修改為:

    export JETTY_HOME=/opt/jetty

同樣,對於您希望子 shell 和子 shell 繼承的所有變數。

答案3

事實證明,我遇到的問題是我首先在 Windows 中建立了「/opt/jetty」文件作為文字文件,然後透過 FTP 將其傳輸到伺服器。這沒有被識別,因為它顯然是某種“dos 格式”,所以當我刪除該文件並使用以下命令重新製作它時:

nano /etc/default/jetty

並以這種方式貼上變數訊息,突然一切正常了!

相關內容